Delphi - NumLock, CapsLock, ScrollLock

forráskód letöltése
A címben jelölt három billentyűnek az állapotát lekérdezhetjük programból is. Sőt be is állíthatjuk ezeknek az értékét oly módon, hogy a billentyűzeten lévő kis lámpák is az adott állapotnak megfelelően fognak világítani. Mellékelt programban még arra is fény derül, hogy miként tudjuk e három billentyű lenyomását valós időben figyelni. A címben jelölt három billentyűnek az állapotát lekérdezhetjük programból is. Sőt be is állíthatjuk ezeknek az értékét oly módon, hogy a billentyűzeten lévő kis lámpák is az adott állapotnak megfelelően fognak világítani. Mellékelt programban még arra is fény derül, hogy miként tudjuk e három billentyű lenyomását valós időben figyelni.


A program indulásakor létrejövő OnCreate eseménykor a Form-on lévő három nyomógombot rögtön úgy állítjuk be, hogy ha e három billentyű közül valamelyik be van kapcsolva, akkor a nyomógomb is le legyen nyomva.

Lekérdezéshez a GetKeyboardState függvényt használjuk. Ez egy TKeyboardState típusú változóba kiolvassa az összes billentyű aktuális állapotát.

Ha egy billentyűt lenyom majd felenged a felhasználó és a Form KeyPreview property-e igazra van állítva, akkor létrejön az OnKeyUp eseménye. Ekkor ellenőrizhetjük, hogy melyik gomb lett lenyomva és ennek megfelelően állíthatjuk be a Form-on található nyomógombjaink állapotát is.
Ha tehát fut a programunk és a billentyűzeten e három gombot nyomkodjuk, akkor a programban lévő nyomógomboknak is követniük kell az aktuális állapotot.

Végezetül, ha a felhasználó valamelyik gombra kattint, akkor a SetKeyboardState eljárással beállíthatjuk az új állapotot. Ehhez persze célszerű először lekérdezni az aktuálisat.