Клавиатура - это основное средство ввода информации в ПЭВМ , поэтому гибкая обработка сигналов с клавиатуры является важным элементом создания эффективных программ.
В процессе работы с клавиатурой производится анализ кода нажатой клавиши, называемый кодом сканирования. Каждая из клавиш клавиатуры имеет свой уникальный код .
Сдандартная клавиатура имеет три типа клавиш :
символьные ( буквы , цифры, знаки арифметических операций, знаки пунктуации и специальные ENTER, ESC, BACKSPACE, TAB);
управляющие ( функциональные F1-F10, клавиши перемещения курсора, Alt+<другие клавиши>, Ctrl+<другие клавиши>, Shift+<другие влавиши>).;
сдвига (смена регистов Ctrl,Alt,Shift, фиксации регистров CapsLock,ScrollLock,NumLock, вспомогательные клавиши).
Символьные клавиши генеируют при нажатии код в виде одного значения.
Управляющие клавиши генерируют расширенный код сканирования, состоящий из двух значений. Первое является признаком управляющей клавиши , второе содержит код сканирования.
Клавиши сдвига имеют коды , которые не распознаются средствами Паскаля. Обработка кодов производится на системном уровне.
В модуле Crt определены две дополнительные функции управления клавиатурой: ReadKey и KeyPressed.
KeyPressed:boolean возвращает значение true если на клавиатуре была нажата клавиша, и false в противном случае. При этом введенные символы из буфера клавиатуры не удаляются. Данную функцию можно использовать для завершения цикла по нажатию любой клавиши.
Пример 1.
(* использование функции ReyPressed *)
Uses Crt;
Begin
(* заполнение экрана до нажатия любой из клавиш *)
Clrscr;
Randomize;
repeat
GotoXY(Random(70),Random(50));
write('привет !');
delay(300)
Until KeyPressed;
End.