Free pascalban meg lehet azt oldani, hogy ASCII kóddal ne lehessen billentyűt lenyomni?
Ha readkey-el olvasod be a kilépést indító billentyű kódját, akkor, ha funkció billentyű kerül lenyomásra, a változó, amibe a readkey-el olvastál #0-t fog tartalmazni és egy második readkey adná vissza az adott billentyűkombináció kódját. Ha szűröd a #0-t akkor kikapcsolhatod az ALT, ALT GR, CTRL stb billentyűkkel kombinált kódokat.
Pl.
Program bkod;
uses crt;
var c: char;
begin
repeat
clrscr;
writeln('nyomj egy billentyűt (kilépés - X)');
if keypressed then c:=readkey;
if c=#0 then c:=readkey;
writeln('kód: ', ord(c));
until c in ['x','X'];
end.
A kódot nem teszteltem, telefonon pötyögtem be, ezért lehetnek benne hibák.
Reggel félálomban kicsit lehet elbagatelizáltam a problémát. Szerintem tedd fel a kérdést a prog.hu-n. Nem hiszem, hogy sikerülhet letiltani az ALT kódokat (esetedben ugye az ALT-119-et) Free Pascalban. Bár van Keyboard unit, ami elvileg alacsonyabb szintű hozzáférést biztosít a billentyűzethez, de valószínűnek tartom, hogy ezzel sem lehet megoldani a problémát.
Hátha tőlem hozzáértőbbek tudnak neked valami okosat javasolni.
Az ascii kódok helyett a scancode-okat kell figyelni a TKeyEventtel.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!