
Лекция 6 Световое меню foxpro
Меню является основной формой диалога в прикладных системах обработки данных. FOXPRO обладает исключительно развитыми средствами поддержания меню, это:
световое
кнопочное
клавишное
Световое меню представляет собой перечень элементов меню, среди которых один текущий " подсвечен"- отображен иным цветом, чем другие пункты меню.
Световое меню в зависимости от способа подключения и типа окна редактирования может работать по разному. Если световое меню с BROWSE/ CHANGE- окном, то оно должно активизироваться командой ACTIVATE MENU с опцией NOWAIT до команды BROWSE. Недостатком такого использования светового меню совместно с BROWSE- окном является то, что изменения данных, сделанные через меню, отображаются в окне редактирования только при возврате в него курсора. Это не относится к BAR- меню, если оно определяется командой DEFINE BAR с опцией BAR (т.е. в стиле системного меню). Здесь изменения данных сразу отражаются в BROWSE- окне, поскольку после выбора определенного пункта курсор автоматически возвращается назад.
В FOXPRO имеется две альтернативные технологии построения меню это:
FOX - меню и ...dBASE- меню.
FOX- меню является частью программы, оно вырабатывает числовые переменные, фиксирующие сделанные пользователем выбор. Эти переменные далее анализируются в программе, обычно в структуре Do CASE….ENDCASE. Для поддержания возможности постоянного возврата в меню оно или команда активизации меню, как правило, помещается в цикл вида DO WHILE….ENDDO.
DBASE- меню может непосредственно вызывать процедуры, подпрограммы, команды по обработке выбора. Оно осуществляет совершенно иную архитектуру построения систем обработки данных, когда программа может вообще не иметь единого ядра, а вся состоять из процедур, которые связаны друг с другом только через вызовы меню. Имеется неоценимая возможность создавать меню из имен файлов и компонентов базы данных, осуществлять множественный выбор.
В FOX- меню возможно создание трех различных форм меню:
с произвольно расположенными элементами (меню с подсветкой элементов- LIGUTBAR- меню)
вертикально ("всплывающее" POPUR- меню)
двух уровневое меню(POLLDOWN- меню)
Lightbar- меню
Для создания такого меню используются команды @…PROMPT, MENU и возможно SET MESSAGE
@ Y,X PROMPT< выр. С1 > [MESSAGE< выр С2 >]
выдает в позиции Y,X строку меню < выр С1 > выражение в скобках
[ ] усиливает информативность меню.
Само меню состоит из ряда (до 128) команд PROMT, показывающих в заданных позициях экрана строки меню.
Перемещение внутри меню пользователь осуществляет нажатием клавиш со стрелками, выбор клавишей Enter.
Команда SET MESSAGE то [выр N][LEFT/RIGHT/CENTER]
Применяется, чтобы в строке < выр N > экрана \ окна вывести дополнительное сообщение к пункту меню, на котором стоит курсор, слева, справа, в центре. Эта команда без параметра < выр N> направляет сообщение в последнюю строку экрана.
Пример
CLEAR
SET MESSAGE то16 CENTER
@ 5.31 SAY ' Меню системы
@ 7.31 PROMPT ' Конец работы ' MESSAGE ' Выход из системы '
@ 9.31 PROMPT ' Дополнение данных '
@ 11.31 PROMPT ' Корректировка '
@ 13.31 PROMPT ' Печать данных ' MESSAGE ' Включите принтер '
MENU то R
SEN MESSAGE ТО