События
клавиатуры
События клавиатуры
происходят в форме и элементе формы, когда пользователь нажимает клавиши на
клавиатуре или же выполняется макрокоманда sendKeys.
Все события
клавиатуры связываются с тем объектом в форме, который имеет в данный момент
фокус. Обычно это один из элементов управления. Форма может получить фокус (а
значит, и события клавиатуры могут относиться к форме), только если все ее элементы
управления заблокированы или невидимы. Если нужно привязать эти события именно
к форме, а не к элементу формы, то можно присвоить свойству
Перехват нажатия
клавиш
(KeyPreview) для формы значение Да (Yes). Тогда все события клавиатуры
возникают сначала для формы, а потом уже для элемента управления, имеющего фокус.
Это дает возможность запрограммировать реакцию формы на нажатие определенных
клавиш вне зависимости от того, в каком элементе управления формы находится
фокус.
Замечание
События клавиатуры не определены для элементов управления в отчетах, а также для флажков и переключателей в группах. Они определены только для группы в целом.
Клавиша
вниз
и
Клавиша вверх
События
Клавиша
вниз
(KeyDown) и
Клавиша вверх
(KeyUp) возникают всякий раз, когда
пользователь нажимает или отпускает клавишу на клавиатуре и при этом фокус находится
на элементе управления или форме. Процедуры обработки этих событий используют,
когда требуется определить, какую клавишу нажал пользователь — функциональную,
клавишу управления курсором, клавишу цифровой панели или комбинацию клавиш с
<Shift>, <Ctrl> или <Alt>. Они имеют два параметра: KeyCode
и Shift. Параметр KeyCode — это целое число, представляющее код нажатой клавиши.
Параметр Shift позволяет определить, какие сочетания клавиш нажимались: 1 —
соответствует <Shift>, 2 — <Ctrl>, 4 — <Alt>, 0 — не использовалось
сочетание клавиш. Если же нажималась комбинация клавиш <Shift>, <Ctrl>,
<Alt> в любом сочетании, то параметр Shift будет равен сумме значений
каждой клавиши.
Нажатие
клавиши
Событие
Нажатие
клавиши
(KeyPress) происходит, если пользователь нажимает и отпускает любую
комбинацию клавиш для элемента управления или формы, имеющей фокус. В отличие
от событий
Клавиша вниз
(KeyDown) и
Клавиша вверх
(KeyUp), данное
событие не происходит, когда нажимаются функциональные клавиши, клавиши управления
курсором и клавиши <Shift>, <Ctrl> или <Alt>. Кроме того,
эти события различны для верхнего и нижнего регистров. Процедура обработки настоящего
события имеет один аргумент: KeyAscii — целое число, представляющее код нажатой
клавиши.
Если пользователь
нажимает и удерживает некоторую клавишу, то возникают повторяющиеся события
Клавиша вниз
(KeyDown) и
Нажатие клавиши
(KeyPress) до тех пор,
пока он не отпустит клавишу. Тогда возникает событие
Клавиша вверх
(KeyUp).
Если результатом
нажатия клавиши является перевод фокуса с одного элемента на другой, то событие
Клавиша вниз
(KeyDown) возникает для первого элемента, а события
Нажатие
клавиши
(KeyPress) и
Клавиша вверх
(KeyUp) — для второго.
Если в результате нажатия клавиши появляется диалоговое окно, то возникают события Клавиша вниз (KeyDown) и Нажатие клавиши, а событие Клавиша вверх (KeyUp) не возникает.