Delphi - Felülírás/beszúrás mód egy TMemo komponensnél

forráskód letöltése
Alaphelyzetben ennél a komponensnél csak beszúró üzemmód van a szövegbevitel esetén. Egy apró trükköt alkalmazva egyszerűen megoldhatjuk, hogy az Insert gomb lenyomásával átkapcsolhassunk egy TMemo komponensnél beszúró, illetve felülíró üzemmódba. Alaphelyzetben ennél a komponensnél csak beszúró üzemmód van a szövegbevitel esetén. Egy apró trükköt alkalmazva egyszerűen megoldhatjuk, hogy az Insert gomb lenyomásával átkapcsolhassunk egy TMemo komponensnél beszúró, illetve felülíró üzemmódba.

Első lépésként létrehozunk egy globális logikai változót. Ebben fogjuk eltárolni, hogy aktuálisan beszúró, vagy felülíró üzemmód van-e.

Az OnKeyDown eseménynél ellenőrizzük, hogy a felhasználó az Insert gombot nyomta-e le, ha igen, akkor változtatjuk a globális változónkat, méghozzá pont az ellenkező értékre.

Az OnKeyPress eseménynél van az apró trükk. Abban az esetben, ha felülíró mód van érvényben, akkor egyszerűen kijelöljük az aktuális kurzor pozícióban lévő karaktert. Ekkor a lenyomott billentyű felülírja a kijelölt karaktert. A felhasználó ebből csak azt fogja észre venni, hogy a már meglévő karakter fel lett cserélve az aktuálisan lenyomott billentyű karakterével.

Ez a módszer más szövegbeviteli komponensnél is alkalmazható (pl.: TEdit).