Команда ON KEY LABEL

Задает команду, которая будет выполнена, если нажать некоторую клавишу или комбинацию клавиш или щелкнуть кнопкой мыши.

Синтаксис:

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

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 13.03.2003