Kingdom delphi

Már a hajnal a számítógép-ipar, a billentyűzet az elsődleges beviteli eszköz adatait, és valószínű, hogy megőrizze pozícióját sokáig.
Billentyűzet rendezvények, valamint az egér események, amelyek a fő elemei a felhasználói interakció a programot. Ez a cikk lesz szó a három esemény, amely lehetővé teszi, hogy utolérjék a billentyűk egy Delphi alkalmazás: onkeydown, onkeyup és onkeypress.

Mert billentyűzet, Delphi alkalmazások két módszert használhat. A legegyszerűbb módja az, hogy az egyik komponens, amely automatikusan reagál a billentyűk, mint például az Edit. A másik módszer, hogy hozzon létre egy olyan eljárást, olyan formában, hogy fogja kezelni gombnyomás és felszabadulását. Ezek a processzorok képes kezelni mind egyszeri megnyomásával kulcsok és kombinációk. Szóval, itt van az események:
Onkeydown - felhívta, amikor a billentyűzet lenyomásakor bármelyik gombot. Onkeyup - nevezzük, ha bármely gombot a billentyűzeten felszabadul. Onkeypress - nevezzük, ha megnyom egy gombot, a felelős bizonyos ASCII karakter.

Most van itt az ideje, hogy hogyan néz ki a program rakodók hírek:

Minden esemény egy közös paraméter, általában az úgynevezett Key. Ez a paraméter át a kódot a lenyomott gomb. Shift paraméter (az eljárások és onkeydown onkeyup) azt jelzi, hogy a kulcs már együtt lenyomva a Shift, Alt és Ctrl.

fókusz
Focus az a képesség, hogy megkapja a felhasználói bemenet egér vagy billentyűzet. Eseményeket fogadni a billentyűzeten lehet, hogy csak azokat az objektumokat, amelyek a hangsúly. A forma az aktív alkalmazás egy időben lehet aktív (van fókusz), csak az egyik összetevője.

Egyes alkatrészek, mint például TImage, TPaintBox, TPanel TLabel és nem kaphat hangsúlyt, más szóval, a komponensek örökölt TGraphicControl. Csak nem tudja fogadni a hangsúly láthatatlan komponenseket, például TTimer.

Onkeydown, onkeyup
Onkeydown eseményt és onkeyup biztosítja a legalacsonyabb szintű billentyűzet választ. Rakodók onkeydown onkeyup és reagálni tud az összes billentyűk, beleértve a funkciógombok és a kombinált Shift, Alt és Ctrl.

A billentyűzet események - nem zárják ki egymást. Amikor a felhasználó megnyom egy gombot, a két esemény keletkezik onkeydown és onkeypress, és amikor elengedte, csak egy: onkeyup. Ha a felhasználó megnyomja az egyik gombot, ami onkeypress nem tudja meghatározni, hogy mi lesz generálva csak egy esemény onkeydown és felszabadító onkeyup.

onkeypress
Onkeypress visszatér egy másik ASCII érték „g” és „G”. Azonban onkeydown és onkeyup nem tesz különbséget a kis- és nagybetűk.

A kulcs és Shift
Key paraméter módosítható úgy, hogy a kérelem érkezett egy másik kód gombot megnyomják. Így lehetséges, hogy korlátozza a sor különböző szimbólumok, melyek a felhasználó beléphet a billentyűzetről. Például csak be számokat. Ehhez hozzá egy eseménykezelő onkeypress az alábbi kódot, és tegyük KeyPreview True (lásd. Alább).

f Írjuk be [ 'a' .. 'Z'] + [ 'A' .. 'Z'], majd Kulcs: = # 0

Ez a kifejezés azt ellenőrzi, hogy a Key paraméter kisbetűket ( „a” .. „z”) és nagybetűk ( „A” .. „Z”). Ha igen, akkor a paraméter értéke nulla szerepel, hogy megakadályozza belépését az Edit komponenst (például).
speciális állandók minden kulcs definiálva a Windows. Például VK_RIGHT felel meg a kódot gombokkal a helyes irányba.

Ahhoz, hogy a status speciális gombok, mint a TAB vagy PageUp használhatja az API függvény GetKeyState. állami kulcs lehet három államban: megjelent, sajtolt és bekapcsolva. Ha az MSB értéke 1, a billentyű lenyomása, vagy engedni. Ennek ellenőrzéséhez kicsit használhatja az API függvény HiWord. Ha az LSB 1, a gomb aktiválódik. Itt egy példa a vétel sosotoyaniya speciális billentyűk:

Abban az esetben, onkeydown és onkeyup, Key egy előjel nélküli két bájtos (Word) értéket, amely egy virtuális Windows-gombot. Mert poluchaniya karakter értékek akkor a Chr. Abban az esetben, onkeypress paraméter kulcsa egy Char érték, amely egy ASCII karaktert.

Onkeydown esemény és onkeyup Shift típusú paramétert TShiftState. A Delphi TShiftState típus meghatározása egy sor zászlók, amelyek meghatározzák az állam a Alt, Ctrl és Shift billentyűket, ha rákattint.

Például az alábbi kódot (az onkeyup felvezető) összeköti sor „Ctrl +” a lenyomott gombot, és megjeleníti az eredményt formájában fejléc:

Ha megnyomja a Ctrl + A, akkor keletkezik a következő események:

Hogy elkapjam karakternél a forma szintjén, mielőtt át az alkatrészeket, a forma, telepíteni kell KeyPreview tulajdonságot True. Miután ez a komponens, mint azelőtt megkapja események, de ezek először találkozik egy űrlapot, hogy a program lehetővé teszi, illetve megtilthatja a különböző karaktereket.

Tegyük fel, hogy van egy forma több alkatrészek és szerkesztése Form.OnKeyPress eljárás a következő:

Ha egy alkatrész a fókuszban és Edit KeyPreview tulajdonság False, ezt a kódot nem kerül végrehajtásra - más szóval, ha a felhasználó megnyomja a gombot „5”, majd az Edit Component fókuszban, az „5” jelenik meg.

Azonban, ha KeyPreview True, akkor az esemény kerül végrehajtásra onkeypress forma előtt Edit komponenst látja a lenyomott gomb. Ezért, ha a felhasználó megnyomja a gombot az „5”, a Key lesz helyette nulla, ezáltal megakadályozza a behatoló numerikus karakterek szerkesztése.

Táblázat virtuális gombot kódokat.

szimbolikus
konstans neve

Kapcsolódó cikkek