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

Описание


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

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

Поскольку параметр Key передается в обработчик по ссылке, его можно изменять, передавая для дальнейшей стандартной обработки другой символ.

Классы


TWinControl

Определение


typedef void (__closure *TKeyPressEvent)(System::TObject* Sender, char &Key);
__property TKeyPressEvent OnKeyPress

Пример


Оператор обработчика события OnKeyPress переводит латинские символы в верхний регистр, независимо от того, в каком регистре набрал их пользователь. Этот оператор действует только на латинские символы.

Key = UpCase (Key);

Аналогичный оператор действует и на Латинские символы, и на символы кириллицы:

Key = AnsiOpperCase(Key)[1];

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