Распечатать страницу

Команды для макросов в VFP

« Назад

Команда

SAVE MACROS TO FileName | TO MEMO MemoFieldName

сохраняет макрос в файл FileName или memo-поле MemoFieldName текущей записи текущей таблицы.

Имя FileName не должно содержать более 8-и символов. Может включать путь и расширение. Если оно не задано, то по умолчанию берется расширение FKY.

Если memo-поле MemoFieldName не принадлежит текущей таблице, то имя MemoFieldName должно быть предварено псевдонимом и точкой.

Команда

RESTORE MACROS [FROM FileName | FROM MEMO MemoFieldName]

восстанавливает макросы, сохраненные в файле FileName или memo-поле MemoFieldName.

После открытия VFP все ранее созданные макросы будут недоступны, пока они не восстановлены командой RESTORE MACROS. Если с некоторыми комбинациями клавиш были связаны процедуры, то их следует также воспроизвести, выполнив соответствующие ON KEY LABEL-команды.

Восстановление макросов – процесс аддитивный: новые макросы добавляются к существующим. Если имя нового макроса совпадает с именем существующего макроса, то последний перезаписывается.

Команда RESTORE MACROS, выполненная без опций, очищает все имеющиеся макросы и восстанавливает заданные по умолчанию действия функциональных клавиш.

Пример. Сохраняем, очищаем и восстанавливаем макросы.

save macros to d:\SavedMaros

restore macros

restore macros from d:\SavedMaros

Команда

PLAY MACRO MacroName [TIME nDelay]

выполняет макрос MacroName.

Опция и параметр:

TIME nDelay – задает временной интервал между имеющимися в макросе предписаниями. Значение параметра nDelay задается в секундах.

Несколько последовательных команд PLAY MACRO, имеющихся в программе, исполняются в обратном порядке. Например, если имеются команды

play macro M1

play macro M2

то прежде будет выполнен макрос M2, а затем – M1.

Команда

CLEAR MACROS

освобождает из памяти все макросы и все установки SET FUNCTION.

Команда

SET MACKEY TO [KeyLabelName]

задает клавишу или комбинацию клавиш KeyLabelName, используемую для быстрого вызова диалога (см. рис. 5.9) задания клавиш вызова макроса и его имени.

Пример.

set mackey to Alt+9

Команда

SET FUNCTION nFunctionKeyNumber | KeyLabelName TO [cExpession]

связывает символьное выражение cExpession с функциональной клавишей или комбинацией клавиш, заданных либо номером nFunctionKeyNumber, либо именем KeyLabelName. Нажатие на заданные клавиши приведет к выводу в активном текстовом поле строки, возвращаемой cExpession.

Список имен KeyLabelName приведен в примере для функции FKLABEL( ).

Выполнение SET FUNCTION nFunctionKeyNumber | KeyLabelName TO без параметра cExpession восстанавливает заданное по умолчание действие функциональной клавиши (или комбинации клавиш).

Пример 1. После выполнения команды

set function F2 to "Этот текст будет выведен после нажатия на F2"

&& или: set function 2 to …

каждое нажатие на F2 в текстовом редакторе, командном окне или ином текстовом поле приведет к появлению в нем текста, заданного SET FUNCTION, начиная с позиции расположения курсора.

Если cText содержит точку с запятой, то она интерпретируется как возврат каретки.

Пример 2. Выводимый при нажатии на F4 текст

set function 4 to "Этот текст будет выведен после нажатия на F4, " ;

                                               + "причем; следующая после точки с запятой часть текста " ;

                                               + "перейдет на другую строку"

&& или: set function F4 to …

Пример 3. В качестве cExpession берется символьное выражение.

set function Ctrl+F5 to Padc(" ** ", 20, "-")

После нажатия на Ctrl+F5 в активном текстовом поле появится следующая строка:

-------- ** --------

Функция

FKMAX( )

возвращает общее число программируемых функциональных клавиш и их комбинаций.

Если SET COMPATIBLE установлен в FOXPLUS | OFF (по умолчанию), то функция вернет общее число программируемых функциональных клавиш. Если SET COMPATIBLE установлен в DB4 | ON, то функция вернет общее число программируемых функциональных клавиш и их комбинаций.

Каждому числу из диапазона от 0 до FKMAX( ) – 1 соответствует некоторая клавиша или комбинация клавиш.

Функция

FKLABEL(nFunctionKeyNumber)

возвращает строку, содержащую имя функциональной клавиши (F1, F2, F3 ...) или комбинации клавиш.

Функция вернет пустую строку, если nFunctionKeyNumber больше FKMAX( ) – 1. На результат функции влияет установка команды SET COMPATIBLE; детали см. описание функции FKMAX( ).

Параметр:

nFunctionKeyNumber – число из диапазона от 0 до FKMAX( ) – 1.

Пример. Выводятся результаты функции FKLABEL( ) при разных установках SET COMPATIBLE.

clear

set compatible off

? 'COMPATIBLE OFF'

?

for nCount = 0 to Fkmax( ) – 1

                                            && Получаем и выводим имя функциональной клавиши

                                            ? Fklabel(nCount)

endfor

&&

set compatible on

?

? 'COMPATIBLE ON'

?

for nCount = 0 to Fkmax( ) – 1

                                            && Получаем и выводим имя функциональной клавиши или комбинации клавиш

                                            ? Fklabel(nCount)

endfor

Результат:

COMPATIBLE OFF

COMPATIBLE ON

F1

F2

F3

F4

F5

F6

F7

F8

F9

F10

F11

F12

F1

F2

F3

F4

F5

F6

F7

F8

F9

F10

CTRL-F1

CTRL-F2

CTRL-F3

CTRL-F4

CTRL-F5

CTRL-F6

CTRL-F7

CTRL-F8

CTRL-F9

CTRL-F10

 

SHIFT-F1

SHIFT-F2

SHIFT-F3

SHIFT-F4

SHIFT-F5

SHIFT-F6

SHIFT-F7

SHIFT-F8

SHIFT-F9