Управление клавиатурой и звуком

Клавиатура компьютера состоит из клавиш алфавитно-цифровых, функциональных и специальных. При нажатии клавиши или комбинации клавиш генерируется их код. Коды алфавитно-цифровых клавиш и ряда специальных клавиш обычно состоят из одного байта, а функциональных клавиш, их комбинаций с клавишами Ctrl, Shift, Alt, а также алфавитно-цифровые клавиши в комбинации с клавишей Alt – из двух байт. Код из двух байт называют расширенным, первый символ в нем нуль (#0), а второй ASCII-код.

Некоторые коды клавиш или коды комбинаций клавиш представлены в таблице 2.

Таблица 2.

Код клавиши или комбинации клавиш Клавиши Код клавиши или комбинации клавиш Клавиши
#0#119 Ctrl+Home #0#71 Home
#0#133 F11 #0#134 F12
#0#80 #0#59 F1
#0#72 #0#68 F10
#0#75 #27 Esc
#0#77 #13 Enter
#0#83 Del #0#82 Insert

При нажатии большинства клавиш их коды размещаются в буфере клавиатуры, содержание буфера может быть проанализировано. Для управления клавиатурой в модуле CRT представлены функции KeyPressed и ReadKey.

Функция KeyPressed:boolean; - принимает значение True (истина), если на клавиатуре была нажата какая-нибудь клавиша, в противном случае - False (ложь). Коды клавиш клавиатуры при этом сохраняются в ее специальном буфере и могут использоваться для анализа и обработки.

Функция ReadKey:Char; - читает код клавиши (один байт) из буфера клавиатуры. Этот код на экран компьютера не выводится. Если перед этой функцией выполнялась функция KeyPressed, и она приняла значение True (истина), то код клавиши читается сразу. В противном случае функция ReadKey ожидает нажатия клавиши. Для расширенных кодов клавиш данную функцию требуется выполнять дважды.

Для проверки нажатия клавиши в период выполнения цикла часто применяется функция KeyPressed в сочетании с оператором цикла с последующим условием Repeat …until.