najatie_klaviwi.PAS

{* Какая клавиша нажата *}

Unit NAJATIE_KLAVIWI;
Interface
Implementation
Begin
 writeln('Программа выводит на экран коды клавиш, которые нажимает пользователь на клавиатуре.');
End.

Program pas;

Uses najatie_klaviwi.pas; {* Эту строку можно удалить *}
{  Какая клавиша нажата    Программа вывода кодов нажимаемых клавиш.  Пример для работы с клавишами - стрелками  }
Uses crt; {Будем использовать keypressed}
Var {* Необходимые переменные *}
  a  : char; {Буфер для символа}
  f  : boolean; {Флаг того, что нажаты была клавиша ESC}
  f2 : boolean; {Флаг того, что нажаты была клавиша ESC в предыдущий раз}
Const {* Предопределенные *}
  ESC = 27; {Код клавиши ESC}
Begin
  clrscr; {* Стираем всё с экрана *}
  writeln ('Программа вывода кодов нажимаемых клавиш (выход - 2 раза подряд ESC)');
  writeln ('Дата создания: 01.04.2009');
  writeln ('Нажмите любую клавишу...');
  f := false; {Считаем, что клавиша ESC не нажималась}
  Repeat      f2 := f; {Запоминаем признак того, что была нажата клавиша ESC}
    a := readkey; {* Ждем нажатия пользователя *}
  If ord(a) = 0 Then
  Begin
    f := false; {Нажата не ESC}
    a := readkey; {* Ждем нажатия любой клавиши *}
    writeln ('Вы нажали клавишу с расширенным кодом ', ord(a));
  End;
  Else Begin
    writeln ('Вы нажали клавишу с кодом ', ord(a));
  f := ord(a) = ESC; {f = true, если a = 1, инача f = false}
End;
Until (f And f2); {Выход если 2 раза подряд ESC}
End{С помощью этой программы мы узнали коды клавиш:  клавиша вверх - расширенный код 72  клавиша вниз - расширенный код 80  клавиша влево - расширенный код 75  клавиша вправо - расширенный код 77  }
.....