Кроме стандартных процедур Read и Readln в модуле Crt есть две процедуры, расширяющие возможности работы с клавиатурой.
Функция
ReadKey:char;
считывает один символ с клавиатуры. Его чтение не сопровождается эхо-отображением на экране, что используется в программах с меню и других, требующих постоянного управления с помощью клавиатуры. Более того, с ее помощью можно читать коды управляющих клавиш, чего нельзя сделать с помощью команды Read.
Если нажата не символьная, а управляющая клавиша, то первое считанное число — 0, а код клавиши надо ввести еще раз.
Пример: программа проверки нажатия функциональных клавиш F1 - F10.
Program DemoCode;
{ Демонстрационная программа проверки нажатия
функциональных клавиш }
Uses Crt;
Const Esc=27;
F1=59;
F10=68;
Var Ch:char; { символ, вводимый с клавиатуры }
Priznak:boolean;
Begin
TextColor(Yellow); { Буквы желтые }
TextBackGround(Blue); { Фон синий }
ClrScr;
Repeat
Ch:=ReadKey;
If Ord(Ch)=0 then
Begin
Ch:=ReadKey; { второй символ }
If Ord(Ch) in [F1..F10] then
Writeln('Нажата функциональная клавиша F',Ord(Ch)-58)
else
Writeln('Нажата управляющая клавиша с кодом ',Ord(Ch))
end else
Writeln('Нажата символьная клавиша с кодом ',Ord(Ch));
Until Ord(Ch)=Esc;
end.
При обращении к функции
KeyPressed:boolean;
ожидания нажатия клавиши нет, она просто опрашивает буфер клавиатуры и выдает логический результат: True — если в буфере есть какой-либо символ и False — в противном случае.