Учись программированию на C++ Builder бесплатно!

Описание


Событие OnKeyDown наступает, если компонент находится в фокусе, при нажатии пользователем любой клавиши, включая функциональные и вспомогательные, такие как Shift, Alt и Ctrl.

В обработчик события передаются, кроме обычного параметра Sender, указывающего на компонент, в котором произошло событие, также параметры Key и Shift. Параметр Key определяет нажатую клавишу клавиатуры. Для не алфавитно-цифровых клавиш используется виртуальный код API Windows. Коды не различают символы в верхнем и нижнем регистрах и не различают символы кириллицы и латинские.

Классы


TWinControl

Определение


enum Classes__1 { ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble };
typedef Set<Classes __1, ssShift, ssDouble> TShiftState;
typedef void (__closure *TKeyEvent)(System::TObject* Sender, Word &Key, Classes::TShiftState Shift);
__property TKeyEvent OnKeyDown

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

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

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

Пример №1


Пусть нужно распознать комбинацию клавиш All+X. Для этого можно написать следующий оператор:

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

Пример №2


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

if(Key == 13)
{
...
}

или

if(Key == 0x0D)
{
...
}

или

if(Key == VK_RETURN)
{
...
}

Поиск по сайту