Záróeiemszerszámbói megnyomásával menekülési Delphi

A könnyebb egy multi-kezelői program néha hasznos, hogy a funkcionális lezárását a jelenlegi formájában, ha megnyomja a Kilépés gombot. Szokásos kimeneti megnyomásával az egér az ablak exit gombot (az X a jobb felső sarokban) néha valóban kevésbé kényelmes, mint egy gombot a billentyűzeten. Ez lehet, például, ha töltés egy sor különböző formákban megy át egy másodlagos alakja válasszon más értékeket, illetve beállításokat.

Ahhoz, hogy használja ezt a funkciót nem nehéz. Új program létrehozása egy üres forma. Ezután adjuk hozzá az esemény onkeypress formakód amely elvégzi formazáráshoz (módszer bezárása). És elébe feltétele igazolja, hogy meg lett nyomva a Kilépés gombot. A fenti feltételek nélkül a program zárva lesz, ha megnyom egy gombot. Itt egy példa a kész kód:

eljárás TMyForm.FormKeyPress (Sender: TObject; var Key: Char);
kezdődik
ha Key = # 27 majd a Bezárás;
végén;

Itt Key - egy változó, amely tartalmazza a kódot a lenyomott gomb; # 27 Esc kódszimbolummá; Close - záróparancsnak formában.

Ha most elindítja a programot és nyomja meg az Esc, a program, a tervek szerint, zárva lesz. Azonban nem minden. Ha most hozzá a formában bármilyen alkatrész, a hangsúly a program kap hozzá. Ez azt jelenti, hogy mindaddig, amíg a forma nem, akkor a program futtatásához, billentyűzet és egér események váltják pontosan alakra és a program megfelelően működik. De, ha a hatóanyag egy másik komponens (a fókusz), akkor egy gomb megnyomásával a billentyűzeten fog működni onkeypress ez a komponens esetén, a forma helyett.

Szerkesztés beállítás komponens már a forma és a program futtatásához, akkor győződjön meg arról, hogy az Esc nem ad semmilyen eredményt. Végtére is, a mi események onkeypress szerkesztése nem volt semmi adni.

Ez természetesen lehetséges, most rendelni minden eleme a feldolgozás az esemény az exit parancsot. De ez a megoldás nem túl kényelmes, mert ez túl bonyolult, és ami a legfontosabb -, mert a többi összetevő saját eljárásai erre az eseményre.

Ezért szükséges, hogy erre képezve reagálnak onkeypress esemény, beavatkozás nélkül ugyanazt az eseményt kiváltó egyéb alkotórészei. Ehhez be kell állítania az ingatlan KeyPreview formában. Ez logikai tulajdonság csak felelős a sorrendben a billentyűzet esemény kezelése. Az alapértelmezett érték False (hamis). Ez azt jelenti, hogy az esemény által feldolgozott aktív komponenst tartalmaz. Azzal, hogy az a tulajdonságot True (Igazság), rámutatunk, hogy az elején a billentyűzet események fog futni eseménykezelőkkel képeznek, majd a hatóanyagot.

mert Az Object Inspector tulajdonságainak formában van, akkor állítsd programozottan létrehozni egy űrlapot az esemény OnCreate. Hozzá a program a következő kódot:

eljárás TMyForm.FormCreate (Sender: TObject);
kezdődik
MyForm.KeyPreview: = true;
végén;

Most, amikor elindítja a programot (pontosabban, ha létrehoz egy űrlapot), Űrlaptulajdonságok KeyPreview kapnak True.

A felülvizsgálatot követően a program zárva lesz rendesen, nyomja meg a menekülés minden rendelkezésre álló elemek az ablakban. Sőt, még ha egy részük lesz saját eljárásainak onkeypress esemény, akkor is el kell végezni helyesen.

Egy másik anyag ebből a szakaszból