1030_____________________________________________Глава 15

различают символы в верхнем и нижнем регистрах и не различают символы ки-
риллицы и латинские.

Параметр Shift является множеством, которое может быть пустым или вклю-
чать следующие элементы:

Элемент	Значение
ssShift	Нажата клавиша Shift.
ssAlt	Нажата клавиша Alt.
ssCtrl	Нажата клавиша Ctrl.

Значения элементов Shift, соответствующие нажатиям кнопок мыши, в дан-
ном событии не используются.

Примеры

Пусть вы хотите распознать комбинацию клавиш Alt-X. Для этого вы можете
написать оператор:

if((Key == 'X') && Shift.Contains(ssAlt)) ... ;

Реакцию на нажатие пользователем клавиши Enter можно оформить одним из
следующих операторов:

if (Key ==13) ... ;

или

if(Key == OxOD) ... ;

ИЛИ

if(Key == VK_RETURN) ... ;

OnKeyPress________________________________________

Событие наступает при нажатии пользователем клавиши символа
Класс TWinControl

Определение

typedef void (_closure *TKeyPressEvent)(System::TObject* Sender,
char &Key);

property TKeyPressEvent OnKeyPress

Описание

Событие OnKeyPress наступает, если компонент находится в фокусе, при на-
жатии пользователем клавиши символа. Параметр Key в обработчике этого собы-
тия имеет тип Char и соответствует символу нажатой клавиши. При этом различа-
ются символы в верхнем и нижнем регистрах и символы кириллицы и латинские.
Клавиши, не отражаемые в кодах ASCII (функциональные клавиши и такие, как
Shift, Alt, Ctrl), не вызывают этого события. Поэтому нажатие таких комбинаций
клавиш, как, например, Shift-A, генерирует только одно событие OnKeyPress, при
котором параметр Key равен «А». Для того, чтобы распознавать клавиши, не соот-
ветствующие символам, или комбинации клавиш, надо использовать обработчики
событий OnKeyDown и OnKeyUp.

Следует отметить, что событие OnKeyPress заведомо наступает, если нажима-
ется только клавиша символа или клавиша символа при нажатой клавише Shift.