- Событие OnKeyPress
Событие OnKeyPress
Другое событие — ОпКеуPress наступает, если компонент находится в фокусе при нажатии пользователем клавиши символа. Параметр Key в обработчике этого события имеет тип char и соответствует символу нажатой клавиши. Функциональные клавиши и специальные клавиши типа <Shift>, <Alt> и <Ctrl> не вызывают этого события. Поэтому нажатие таких комбинаций клавиш, как, например, <Shift>+<A>, генерирует только одно событие OnKeyPress, при котором параметр Key равен А. Поскольку параметр Key передается в обработчик события как переменная, его можно изменять, передавая для дальнейшей обработки другой символ. В некоторых программах этот прием использовать полезно.
Для того чтобы распознавать комбинации клавиш или клавиши, не соответствующие символам, необходимо использовать обработчики событий OnKeyDown и OnKeyUp.
Следует отметить, что событие OnKeyPress заведомо наступает, если нажимается только клавиша символа или клавиша символа при нажатой клавише <Shift>. Если же клавиша символа нажимается одновременно с какой-то из вспомогательных клавиш, то событие OnKeyPress может не наступить (произойдут только события OnKeyDown при нажатии и OnKeyUp при отпускании), или если и наступит, то укажет на неверный символ. Например, при нажатой клавише <Alt> событие OnKeyPress при нажатии символьной клавиши не наступает. А при нажатой клавише <Ctrl> событие OnKeyPress при нажатии символьной клавиши наступает, но символ не распознается.