Delphi - Adatbevitel figyelése, szabályozása

forráskód letöltése
Egy adatbeviteli ablakon számtalan objektum állhat rendelkezésre, hogy különféle adatokat adjon meg a felhasználó. Tegyük fel, hogy csak páros számokat szabad megadni az adatbeviteli mezőkbe, vagy például csak nagy A betűt szabad elfogadni.
Ha csupán egy TEdit komponens van a Form-on akkor ez nem nagy gond, de ha már tíz darab, akkor igen felesleges munkának tűnik mindegyiknél külön leprogramozni. Arról nem is beszélve, hogy mi történik olyankor, ha nem csak TEdit van a Form-on, hanem például TMemo, vagy más egyéb komponens is. A legegyszerűbb megoldás erre a problémára az, hogy globálisan figyeljük a lenyomott billentyűket függetlenül attól, hogy hány és milyen komponens is van a Form-on, valamint függetlenül attól, hogy ezek közül melyik az aktív.

Ehhez célszerűen a Form OnKeyPress eseményét kell felhasználnunk. Erről viszont tudnunk kell, hogy csak akkor fog generálódni, bármelyik komponens is legyen az aktív, ha a Form KeyPreview property-ét igazra állítottuk.

Ezek után már vizsgálhatjuk az esemény Key paraméterében kapott értéket, mely az aktuálisan lenyomott billentyűhöz tartozó karaktert tárolja.

Mivel ez a változó var-ként deklarált, így annak értékét meg is változtathatjuk tetszésünk szerint. Ha például #0-ra állítjuk, akkor az annyit tesz, mintha le sem nyomta volna a felhasználó az adott billentyűt.