Pascal FAQ created by SLY Golovanov, 2:5020/278.13
(slightly corrected by Valery Votintsev 2:5021/22)
==============================================================================
Q:> А как прочитать нажатия клавиш с клавиатуры?
Hу, буквы и цифры я прочитал с помощью ReadKey -
а вот функциональные клавиши почему-то ноль возвращают.
A: Потому что эти клавиши возвращают расширенный код,
состоящий из двух символов - как, например, стрелки, или буквенно-
цифровая клавиатура в комбинации с Alt, Ctrl, и т.д.
Вот, как нужно обрабатывать клавиатуру:
case ReadKey of {читаем код }
#0:case ReadKey of {код оказался расширенным}
#59:Writeln('Hажали F1');
#60:Writeln('Hажали F2');
{.......................}
end {case}; {закончили обработку расширенных кодов}
#13:Writeln('Hажали Enter');
#27:Exit
end {case}
Q:> А как мне узнать все эти коды #13, #59, #60 и т.д.?
A: Воспользуйся простой программкой:
Uses
Crt;
var
key:char;
begin
repeat
key:= ReadKey; {читаем код }
if Key = #0 then begin {код оказался расширенным}
Write(Ord(Key):3,','); {печатаем первый код }
key:= ReadKey; {читаем расширенный код }
end; {закончили обработку расширенных кодов}
Writeln(Ord(Key):3); {печатаем основной код }
until Key = #27; {Цикл, пока не нажмем Esc}
end.
---
* Origin: (2:5020/794.13)
|