Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VisualFoxPro.doc
Скачиваний:
15
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

Значения параметра cOnCommand

cONCommand

Команда

"ERROR"

ON ERROR

"ESCAPE"

ON ESCAPE

"KEY"

ON KEY LABEL

"PAGE"

ON PAGE

KeyLabelName – используется, когда cONCommand = "KEY". Значения см. в описании функции ON KEY LABEL.

Пример:

on key label RIGHTARROW wait window "Right Arrow" nowait

? ON('KEY', 'RIGHTARROW') && Напечатает: wait window "Right Arrow" nowait

&&

&& Сбрасываем ON KEY LABEL-предписание

on key label RIGHTARROW

Команда

ON ESCAPE [Command]

задает команду Command, выполняемую при нажатии на Esc.

После выполнения команды Command управление передается на оператор, следующий за строкой исполняемой при нажатии на Esc. Однако если процедура, запускаемая по ON ESCAPE, включает RETRY, то вновь будет выполнена строка, при исполнении которой была нажата клавиша Esc.

Вызов ON ESCAPE без Command разрывает связь между Esc и командой.

Замечание. VFP выполняет ON ESCAPE-команду, если только SET ESCAPE установлен в ON.

Пример:

set escape on

on escape do StopIt

wait 'Нажмите на Esc, чтобы прервать цикл' window nowait

goOn = .T.

do while goOn && Бесконечный цикл

enddo

procedure StopIt

goOn = .F.

wait 'Цикл прерван!' window nowait

endProc

Команда

SET ESCAPE ON | OFF

определяет, прерывает ли нажатие на Esc выполнение программы или команды. Прерывание произойдет, если SET ESCAPE установлен в ON (по умолчанию), и не произойдет, если – в OFF.

После прерывания, если не задана ON ESCAPE-команда, возникнет диалог, в котором можно выбрать Cancel, Suspend или Ignore, чтобы соответственно прекратить, приостановить или продолжить выполнение программы.

5.9. Макросы

5.9.1. Понятие макроса

Макрос – это некоторое множество последовательно нажимаемых клавиш, их комбинаций и кнопок мыши.

Выполнение макроса – это воспроизведение хранимой в нем последовательности нажатия клавиш, их комбинаций и кнопок мыши.

С некоторыми клавишами, их комбинациями (см. табл. 5.7), а также с кнопками мыши могут быть связаны пользовательские процедуры. Таким образом, выполнение макроса приведет к вызову соответствующих процедур.

Механизм макросов дает возможность, в частности, создавать и показывать заинтересованным лицам демонстрационные программы.

5.9.2. Интерактивное формирование макроса

5.9.2.1. Запись макроса

Макрос можно сформировать интерактивно, выбрав пункт меню Tools – Macro, а затем в появившемся диалоге нажать кнопку Record.

В открывшемся окне (рис. 5.6) введем сочетание клавиш, по которому будет вызваться макрос, его имя и нажмем OK.

Рис. 5.6. Подготовка к записи макроса

После нажатия на OK в главном окне VFP появится приведенное на рис. 5.7 напоминание, которое будет существовать вплоть до завершения записи макроса.

Рис. 5.7. Идет запись макроса

Далее реализуем для примера следующую последовательность действий:

  • в командном окне выполним команду

modi comm d:\ProgForMacro

  • в открывшемся текстовом редакторе введем команду

? 'Printing number ', 9

  • нажмем Ctrl+W, закрывая файл d:\ProgForMacro.prg и сохраняя его данные;

  • в командном окне выполним

do d:\ProgForMacro

После этого закончим запись макроса, выполнив Tools – Macro и в появившемся окне (рис. 5.8) выбрав OK.

Рис. 5.8. Завершаем запись макроса SomeMacro

Перед запуском макроса удалим файл d:\ProgForMacro.prg. Затем после нажатия Ctrl+F1 вся зафиксированная в макросе последовательность действий будет воспроизведена и экране появится результат выполнения программы d:\ProgForMacro.prg:

Printing number 9

Состав макроса можно просмотреть и изменить, нажав в диалоге его создания (Tools – Macro) кнопку Edit. Так, макрос SomeMacro содержит следующий текст:

modi{SPACEBAR}comm{SPACEBAR}d:\ProgForMacro{ENTER}

?{SPACEBAR}'Printing{SPACEBAR}number{SPACEBAR}',{SPACEBAR}9{CTRL+W}do{SPACEBAR}d:\progForMacro{ENTER}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]