Задает команду, которая будет выполнена, если нажать некоторую клавишу или комбинацию клавиш или щелкнуть кнопкой мыши.
Синтаксис:
ON KEY [LABEL KeyLabelName] [Command]
Параметры:
LABEL KeyLabelName
Задает название клавиши. KeyLabelName представляет собой букву или цифру, изображенную на клавише, или присвоенное ей специальное имя.
Command
Задает команду, которая будет выполнена, если нажать заданную клавишу или комбинацию клавиш или щелкнуть кнопку мыши.
Комментарии:
В команде ON KEY LABEL обычно используется команда DO, выполняющая нужную процедуру.
Во время работы команд READ, BROWSE, EDIT, CHANGE и пользовательских меню команда ON KEY LABEL выполняет заданную команду немедленно. Если в момент нажатия клавиши или кнопки мыши выполнялась программа, Visual FoxPro выполняет текущую строку программы, а после нее команду ON KEY LABEL. Все назначения клавиш ON KEY LABEL, определенные в программе, остаются в силе после выполнения программы. Вы также можете определить назначения клавиш в окне команд.
Чтобы восстановить обычный режим работы некоторой клавиши, выдайте команду ON KEY LABEL KeyLabelName. Чтобы восстановить стандартный режим для всех клавиш, выдайте ON KEY.
Совет. Чтобы избежать рекурсивных вызовов во время выполнения процедуры ON KEY LABEL, поставьте в начале процедуры команду PUSH KEY CLEAR, которая заблокирует все активные команды ON KEY LABEL. В конце процедуры выдайте команду POP KEY, возобновляющую действие команд ON KEY LABEL.
Назначения клавиш ON KEY LABEL не действуют в системной строке меню Visual FoxPro, в системных меню, диалоговых окнах, окнах предупреждения и т.п. Впрочем, эти назначения клавиш действуют в системных окнах Visual FoxPro текстовом редакторе Visual FoxPro, окне команд, окне трассировки и т.д.
В отличие от ON KEY, одновременно могут быть активны несколько команд ON KEY LABEL. Например, можно назначить команду каждой из клавиш со стрелками и кнопке мыши.
Следует отметить, что при выполнении команды ON KEY LABEL значение функции PARAMETERS( ) сбрасывается в 0. Подробнее об этом см. описание функции PARAMETERS( ).
В Visual FoxPro некоторые события нельзя перехватить, так как они находятся под контролем системы Windows. В частности, команды ON KEY LABEL MOUSE, ON KEY LABEL LEFTMOUSE и ON KEY LABEL RIGHTMOUSE не выполняются, если щелкнуть мышью такой элемент управления Windows, как управляющее меню, линейка прокрутки и т.п.
Подробнее о клавиатуре и клавишах в FoxPro для Macintosh см. раздел Keyboard Differences в документе Installation and Macintosh Features Guide.
Пример:
* В следущем примере при нажатии клавиши со стрелкой выдается * сообщение. SET TALK OFF CLEAR ON KEY LABEL RIGHTARROW ? 'Right Arrow' ON KEY LABEL LEFTARROW ? 'Left Arrow' ON KEY LABEL UPARROW ? 'Up Arrow' ON KEY LABEL DNARROW ? 'Down Arrow' SET ESCAPE ON STORE .F. TO glExit ON ESCAPE STORE .T. TO glExit STORE 0 TO TEMP @ 2,0 SAY 'Press an arrow key to test ON KEY LABEL, <Esc> to exit' DEFINE WINDOW wEnter FROM 10,20 TO 14,60 DOUBLE ACTIVATE WINDOW wEnter DO WHILE NOT glExit ENDDO DEACTIVATE WINDOW wEnter ON KEY