Delphi - Egyedi szövegbeviteli eszköz

1. rész

forráskód letöltése
Szövegbeviteli eszközként legáltalánosabban a TEdit komponenst szokás használni, de tegyük fel, hogy valami oknál fogva egyedi szövegbevitelt szeretnénk megvalósítani.

Cikksorozatunk első részében a legalapvetőbb funkciókat tekintjük át. Szövegbeviteli eszközként legáltalánosabban a TEdit komponenst szokás használni, de tegyük fel, hogy valami oknál fogva egyedi szövegbevitelt szeretnénk megvalósítani.

Cikksorozatunk első részében a legalapvetőbb funkciókat tekintjük át.


Szövegbevitelhez elengedhetetlen, hogy legyen egy kurzorunk, mely segíti a felhasználót a gépelés során.

Így ezt a program indulásakor az OnCreate eseménynél rögtön létre is hozzuk. Ehhez a CreateCaret függvényt fogjuk használni, ahol első paraméterként a kurzor ablakának az azonosítóját kell megadnunk, mely ebben az esetben maga a Form lesz. Második paraméterben kell megadnunk egy képnek az azonosítóját. Ez a kép lesz a kurzor alakja, így itt egy tetszőleges képet felhasználhatunk. Az utolsó két paraméterben adhatnánk meg a kurzor szélességét és magasságát, de ha használunk egyedi képet, akkor erre nincs szükségünk, mivel ez a két érték majd a kép szélességéből és magasságából kerül meghatározásra.

Létrehozás után a ShowCaret függvény hívással tudjuk megjeleníteni a villogó kurzorunkat.

A SetCaretPos függvény segítségével pedig pozícionálhatjuk a kurzort egy tetszőleges helyre. Paraméterként a kívánt pozíció X, Y koordinátáját kell megadnunk pixel-ben.

Szövegbevitelnél - jelen cikkben - csak két funkciót valósítottunk meg. Az egyik maga a szöveg begépelése, a másik a Backspace billentyű használata, vagyis törlés a szövegből.

A Form OnKeyPress eseményénél ellenőrizzük, hogy a felhasználó a Backspace billentyűt nyomta-e le, ha igen, akkor törlünk egy karaktert a szövegből, melyet a globális "s" változóban tárolunk.

Ha nem a Backspace lett lenyomva, akkor hozzáadjuk a lenyomott billentyűhöz tartozó karaktert a sztringhez.

Ezek után pozícionálnunk kell szöveg kurzorunkat az új helyre, valamint ki kell íratni az új sztringet a képernyőre. Ez utóbbit úgy érjük el, hogy érvénytelenítjük a Form területét az Invalidate eljárással, ami majd létrehozza az OnPaint eseményt, ahol elvégezzük a kiírást.

Egyedi szövegbeviteli eszköz cikksorozat