Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Среднее профессиональное образование 11 страница



READ MENU BAR ТО <nep.l>, <пер.2> [SAVE]

Назначение опций:

<пер.1> — целочисленная переменная, в которую записывается номер выбранного пункта главного меню.

<пер.2> — целочисленная переменная, в которую записывается номер выбранного пункта вспомогательного меню.

SAVE — сохраняет на экране образ меню, после выхода из него. В этом случае удалить с экрана образ меню можно только коман­дой CLEAR.

При нажатии клавиши Esc обе переменные <пер.1> и <пер.2> получают значение 0 (ноль).

При создании двухуровневого FOX-меню команды следует располагать в следующем порядке:

а) Описываются и заполняются данными массивы главного и всех вспомогательных меню.

б) Описывается главное меню командой MENU BAR...

в) Описываются все вспомогательные меню с помощью комавд MENU...

г) В нужных местах программы указываются команды READ MENU BAR... для активации всей конструкции меню.

д) После каждой команды READ MENU BAR... пишется об­работчик выбора пункта меню, как правило, с помощью опе­ратора DO CASE... ENDCASE.

8.2. МЕНЮ ТИПА dBASE

При создании и эксплуатации данного меню должны быть пре­дусмотрены следующие элементы:

• определение меню — описывается содержание меню, кла­виши быстрого доступа, форма и реакции меню. Меню типа dBASE определяется один раз;

• активация меню — команды (клавиши быстрого доступа) активации выводят меню на экран и делают его чувстви­тельным к выбору пользователя;

• деактивация меню — меню удаляется с экрана, но остается в оперативной памяти, и впоследствии может быть предъяв­лено на экран;

• удаление меню — меню удаляется из оперативной памяти. Для нового использования меню его надо заново опреде­лять.

Меню типа dBASE бывает двух видов: вертикальное (POPUP) и горизонтальное (BAR). Эти два вида меню могут использоваться как совместно, так и по отдельности. Допускает­ся создание иерархических меню любой сложности.

8.2.1. Вертикальное POPUP-меню

Меню предъявляется на экран в указанном месте в виде прямо­угольной области заданного размера. В качестве пунктов меню можно задать либо имена файлов из указанного каталога, либо структуру табличного файла, либо произвольные строки.

8.2.1.1. Команда определения меню

DEFINE POPLP <имяменю>

[FROM <Y1,XI> J I ТО <Y2,X2>]

[IN [WINDOW] <нмнокиа> | IN SCREEN]

[FOOTER <выр.С1>]

[KEY <имяклавишн>]

[ MARGIN ]

[ MARK <выр.С2> ]

[ MESSAGE <выр.СЗ> ]

[MOVER]

[ MULTI ]

[PROMPT FIELD <выр.>] | [PROMPT FILES LIKE <шаблон>]]



| [ PROMPT STRUCTURE 1

[SCROLL] [ SHADOW ]

[ TITLE <выр.С4> 1

[ COLOR <сннсок пар цветов> | СО! OR SCHEME <ewp.N> J

Назначение опций:

<нмя меню> — содержит имя создаваемого меню. Программист задает имя меню буквами латинского апфавита.

FROM <Y1,X1> ТО <Y2, Х2> — определяет положение и раз­мер меню на экране. <Y1,X1> задает координаты левого верхне­го угла меню (номер строки и номер столбца соответственно). <Y2, Х2> задаст координаты правого нижнего угла меню (номер строки и номер столбца соответственно). Если <Y2, Х2> не ука­заны. то ширина меню определяется размером максимального имени пункта меню, а длина меню — либо количеством пунктов меню, либо — весь экран. Если <YL, XI> не указаны, то пра­вый верхний угол меню помещается либо в левый верхний угол экрана (координаты 0, 0), либо под соответствующим пунктом вызвавшего (старшего) меню.

IN [WINDOW] <нмяокна> — определяет имя окна, внутри ко­торого будет открыто создаваемое меню.

IN SCREEN — создаваемое меню будет открыто на экране. FOOTER <выр.С1> — название (заголовок) меню пишется в центре нижней области меню.

KEY <нмя клавиши> — указывается имя клавиши, которая будет вызывать меню.

MARGIN — задает по одному пробелу слева и справа от имени пункта меню В этих пробелах, в случае необходимости, будут располагаться специальные символы: слева — символ множест­венного отбора пунктов меню, справа — символ наличия подчи­ненного (младшего) меню.

MARK <выр.С2> — устанавливает тип (вид) символа множест­венного отбора пунктов меню. По умолчанию принят символ ♦, код которого по таблице ASCII — 4.

MESSAGE <выр.СЗ> — дополнительное сообщение (коммента­рий), которое выводится либо в последнюю строку экрана, либо в строку, которая задана командой SET MESSAGE.

MOVER — предоставляет возможность перемешать на экране пункты меню внутри области меню с помощью мыши.

MULTI — устанавливает режим множественного отбора пунктов меню. Множественный отбор выполняется при зажатой клавише Shift. Этот режим не работает, если используется одна из опций PROMPT FIELDS | PROMPT FILES | PROMPT STRUCTURE. PROMPT FIELD <выр> — пунктами меню будут значения поля (или полей), указанного в <выр.>. Если в <выр> надоуказатьнс- сколько полей, то их имена перечисляются через знак «+» (плюс). Имена полей можно указывать как из активной таблицы, гак и из пассивных таблиц. Если значения полей имеют разный тип, то в <выр.> допускается использование функций, с целью приведения значений полей к одному типу, как правило, символьному. При использовании этой опции нет возможности организовать множе- ствсшшй отбор пунктов меню. Если необходимо организовать множественный отбор, то процедуру множественного отбора надо программировать отдельно (см. примеры в конце раздела).

PROMPT FILES LIKE <шаблон> — задает в качестве пунктов меню имена файлов из текущего каталога. С помощью <шаблона> можно ограничить количество имен файлов. PROMPT STRUCTURE — задаст в качестве пунктов меню структуру активной таблицы.

SCROLL — автоматически подключает полосу прокрутки, если пункты меню не умещаются в отведенной области.

SHADOW — обрамляет область меню «тенью».

TITLE <выр.С4> — заголовок меню пишется в центре верхней области меню.

COLOR <список пар пветов> | COLOR SCHEME <выр.М> — устанавливает цвет элементов меню либо указанием конкретной пары цветов (цвет фона и цвет букв), либо указывается номер схемы. По умолчанию установлена схема 2.

8.2.1.2. Команда описания пункта меню

DEFINE BAR <eup.Nl> OF <имя POPUP мсию> PROMPT <»ыр.С1> [ KEY <имя клавиши> [, <выр.С2> ] ]

[ BEFORF <Bup.N2> | AFTER <Bup.N3> ]

[ MARK <выр.СЗ> ]

[MESSAGE <выр.С4>]

[ SKIP [ FOR <Bup.L> ] 1

[ COLOR <список пар цвстов> | COLOR SCHEME <Bbip.N4> ]

Команда задает название пункту меню, закрепляет за пунктом меню клавишу быстрого выбора и управляет активностью пунк­та меню. Назначение опций:

<выр.1\1> — задаст номер описываемого пункта меню.

<имя POPUP меию> — определяет, какому меню принадлежит описываемый пункт.

<выр.С1> — определяет название описываемого пункта меню.

KEY <иля клавиши>, <выр.С2> — назначает клавишу быстрого выбора пункта меню и комментарий (<выр.С2>) к пункту меню.

BEFORE <Bbip.N2> — назначает порядок вывода на экран пун­ктов меню по возрастанию их номеров, начиная с номера <BUp.N2>.

AFTER <Bbip.N3> — назначает порядок вывода на экран пунктов меню по убыванию их номеров, начиная с номера <Bbip.N3>. MARK <выр.СЗ> — устанавливает тип (вид) символа множест­венного отбора пункта меню. По умолчанию принят символ ♦, код которого по таблице ASCII — 4. Если символ множествен­ного отбора определен в команде DEFINE РО PUP, то здесь про­изводится переопределение символа множественного отбора.

MESSAGE <выр.С4> —дополнительное сообщение (коммента­рий), которое выводится либо в последнюю строку экрана, либо в строку, которая задана командой SETT MESSAGE.

SKIP FOR <выр.Е> — делает пункт меню недоступным для вы­бора пользователя. Если указан параметр FOR <выр.1>, то пункт мешо будет доступен для выбора при истинности логиче­ского условия <выр.Ь>.

COLOR <список пар цветов> | COLOR SCHEME <выр.М> —

устанавливает цвет элементов меню либо указанием конкретной пары цветов (цвет фона и цвет букв), либо указанием номера схе­мы. По умолчанию установлена схема 2.

8.2.1.3. Команда определения реакции на вызов меню ON SELECTION POPUP <нмя POPUP меню> | ALL [ <комавда> I

к

При выборе указанного <имя POPUP мсню> меню, после нажатия клавиши Enter, выполняется (<команда> ], если она


определена. Если указана опция ALL, то указанная [ <коман- да> | выполняется для всех POPUP-меню. В параметре [ <команда> ] может быть указана любая команда, но чаще всего используется команда DO, которая вызывает на выполнение процедуру, созданную пользователем. Команда, указанная в параметре [ <команла> ], является общей для всего POPUP-ме­ню. По окончании выполнения процедуры (или команды) управление опять передается POPUP-меню, при условии, что внутри процедуры не было команды DEACTIVATE POPUP. Далее можно выбрать любой пункт меню.

8.2.1.4. Команда определения реакции на вызов пункта меню

ON SELECTION BAR <Bwp.N> OF <нчя РОРиР-меню> [<команда>]

При выборе пункта меню с номером <выр.1Ч> изменю <имя POPUP мсию>, выполняется команда, определенная в [<ко- манда>]. Команда ON SELECTION BAR... пишется после команды DEFINE POPUP..., но до команды ACTIVATE POPUP... Если команда ON SELECTION BAR используется без параметра [<комакда>], то отменяется ранее сделанное за­крепление.

8.2.1.5. Комацда закрепления подчиненного (младшего) меню

ON BAR <выр.1Ч> OF <имя РОР1/Р-менк>>

[ ACTIVATE POPUP <имя POPUP меню 2> |

ACTIVATE MENU <имя BAR меию> ]

Команда назначает вызов подчиненного (младшего) меню, закрепленного за пунктом <Bbip.N> меню <имя POPUP- меню>. Подчиненное (младшее) меню может быть как верти­кальным ACTIVATE POPUP <имя POPUP-меню 2>, так и гори­зонтальным (ACTIVATE MENU <имя ВАИ-меню>).

Использование команды ON BAR без опции отменяет за­крепление подчиненного меню. Если за пунктом текущего меню закреплен вызов подчиненного меню, то справа от названия пун­кта текущего меню автоматически устанавливается символ ►, место для которого надо предусмотреть с помощью опции MAR­GIN команды DEFINE POPUP...


8.2.1.6. Команда активации меню

ACTIVATE POPUP <имя POPUP мсшо>[АТ Y,X)

[ BAR <выр.1Ч> ]

[NOWAIT]

[REST]

Команда предъяшшет меню на экран и делает его доступным для выбора пользователя. Назначение опций:

AT Y, X — переопределяет координаты экрана (окна), куда по­мешается первый верхний угол меню. Эта опция имеет приори­тет перед определением положения меню в команде DEFINE POPUP...

BAR <BbJp.N> — определяет номер текущего (активного) пунк­та меню, после вывода всего меню на экран.

NOWAIT — разрешает дальнейшее выполнение программы, не дожидаясь закрытия меню.

REST — определяет текущим пунктом меню текущую строку активной таблицы. По умолчанию это первая строка активной таблицы. Эта опция имеет смысл только в том случае, если в команде DEFINE POPUP указана опция PROMPT FIELD.

Для этих же целей предусмотрена и вторая команда:

SHOW POPUP <список имен POPUP Meiuo>]|ALL [SAVE]

Команда предъявляет на экран либо меню указанные в <спи- скс имен РОРиР-мсню>, либо все меню (ALL) Если указана опция SAVE, то после закрытия меню их образ остается на экране.

8.2.1.7. Команда деактивации меню

DEACTIVATE POPUP

Команда удаляет меню с экрана, но сохраняет его в оператив­ной памяти. Этот же результат получается при нажатии клавиши Esc или при переходе к другому POPUP-меню.

В любом случае управление передается следующей команде по ходу программы.

Если обработчиком выбранного пункта меню является спе­циальная процедура, то последней выполняемой командой мо­жет быть:

• последняя команда процедуры;

• команда RETURN;

• команда DEACTIVATE POPUP.

Если вместо выбора пункта меню нажата клавиша Esc, то об­ращение к процедуре не производится.

8.2.1.8. Удаление всех POPUP-меню

CLEAR POPUPS

Команда удаляет с экрана и из оперативной памяти все POPUP-меню.

8.2.1.9. Удаление указанных POPUP-меню

RELEASE POPUPS [Cciihcok имен POPUP мсню> [ EXTENDED J]

Команда удаляет с экрана и из оперативной памяти меню, пе­речисленные в <списке имен РОРиР-меню>. Если указана оп­ция EXTENDED, то удаляются не только все перечисленные ме­ню, но и все подчиненные меню. Если опция Ссписок имен РОРиР-меню> не указана, то удаляются все POPUP-меню.

8.2.1.10. Удаление пунш меню

RELEASE [ BAR Ссписок имен пунктов РОРиР-меню> | ALL ] OF С нм я РОРиР-меню>

Команда удаляет с экрана и из оперативной памяти либо ука­занные, либо все пункты POPUP-меню. Имя меню задается в опции OF Симя РОРиР-меню>.

8.2.1.11. Удаление меню с экрана

HIDE POPUP Ссписок имен POPUP-Memo> |.ALL [ SAVE J

Команда удаляет с экрана либо перечисленные в Сспискс имен РОРиР-меню>, либо все (ALL) POPUP-меню, но сохра­няет их в оперативной памяти. Эта команда идентична команде

DEACTIVATE POPUP. Опция SAVE сохраняет на экране образ меню, хотя само меню с экрана удалено.

8.2.1.12. Перемещение меню по экрану

MOVE POPUP <имя РОРиР-ченю> ТО Y, X | BY <выр.М1>, <Bbip.N2>

Команда перемешает активное POPUP-меню в новое поло­жение на экране. Новое положение задается либо абсолютными координатами (Y, X), либо относительными координатами (<выр.Ы1>, <Ubip.N2>).

Для работы с вертикальным POPUP-меню предусмотрены следующие функции:

BAR0 — фиксация выбора пункта меню. Функция возвращает номер выбранного пользователем пункта меню. Если никакое меню не выбрано (нажата клавиша Esc), то функция возвраща­ет 0 (ноль). Номера пунктам меню присваиваются в команде DEFINE BAR...

POPUPO — получение имени активного POPUP-меню. Функ­ция возвращает строчными (большими) буквами имя активного POPUP-меню.

PROMPT0 — получение названия (имени) пункта меню. Функ­ция возвращает название (имя) пункта меню. Если в команде DEFINE POPUP была указана опция:

• PROMPT FIELD, то возвращается содержимое поля из те­кущей записи активной таблицы.

• PROMPT FILE, то возвращается полное имя файла;

• PROMPT STRUCTURE, то возвращается имя выбранного поля.

Если никакое меню не выбрано (нажата клавиша Esc), то воз­вращается пустая строка.

CNTBAR([ <имя РОРиР-меню> ]) — определение количества пунктов меню. Функция возвращает количество пунктов указан­ного POPUP-меню. Если параметр <имя РОРиР-меню> опущен, то функция возвращает количество пунктов активного меню.


MRKBAR(<iimh РОРиР-меню>, <выр. N>) — определение ак­тивного пункта меню. Функция возвращает логическое значение «истина» (.Т.), если пункт меню с номером <выр. N> является активным. В противном случае возвращается логическое значе­ние «ложь» (.F.). Функция полезна при организации множест­венного отбора пунктов меню.

8.2.2. Горизонтальное BAR-меню

Как правило, горизонтальное меню располагается в первой строке экрана и на его основе строится главное меню программы. В общем случае горизонтальное меню может располагаться в лю­бой строке экрана и даже замешать главное меню FoxPro.

Для создания горизонтального меню предусмотрены следую­щие команды.

8.2.2.1. Определение горизонтального меню

DEFINE \1ENU <имямсию>

(BAR [ AT LINE <выр.М> ] 1

JIN [WINDOW] <имяокна> | IN SCREEN]

[ KEY <имя клавнпт> [, <выр.С1>[ ]

[ MARK <выр.С2> ]

[MESSAGE <выр.СЗ>]

[ NOMARC IN ]

[ COLOR <снисок пар цвстов> | COLOR SCHEME <Bbip.N> 1

Назначение опций:

BAR — автоматически подключает полосу прокрутки, если стро­ка меню не умещается на экране.

AT LINE <выр.Ы1> — задает номер строки экрана дтя вывода го­ризонтального меню.

IN [WINDOW] <ичяокна> — размещает описываемое горизон­тальное меню в указанном окне.

IN SCREEN — размешает описываемое горизонтальное меню на экране.

KEY <имя клавиши> [, <выр.С1>] — назначает клавишу (или комбинацию клавиш) для активации горизонтального меню. При установке курсора на пункт меню выводится дополнитель­ное сообщение <выр. С1> в строку состояния.

МАКК <выр.С2> — определяет символ множественного отбора пунктов меню.

MESSAGE <выр.СЗ> — выводит комментарий к выбранному пункту меню либо в строку состояния, либо в заранее указанную с помощью команды SET MESSAGE ТО... строку.

NOMARGIN — удаляет пробелы слева и справа от имени пунк­тов меню.

COLOR <список пар цветов> | COLOR SCHEME <Bbip.N> — определяет цвет фона и нвет букв пунктов меню.

8.2.2.2. Описание пунш горизонтального меню

DEFINE PAD <имя пункта меню> OF <имя BAR-4emo> PROMPT <выр.С1>

[ AT Y, X1

[ BEFORE <имя пункта мсшо> | AFTER <нмя пункта меыю> ]

[ KEY <имя клавишн> [, <выр. С2> ] ]

I MARK <выр.СЗ> 1 [ SKIP [ FOR <выр.1> ] |

[ MESSAGE <выр.С4> ]

[COLOR <список пар цветов> | COLOR SCHEME <eup.N> ]

Назначение опций:

<имя пункта меню> — определяет имя пункта меню. Имя пункта меню пишется буквами латинского алфавита. На имя пункта ме­ню производятся ссылки при программном обращении к пункту' меню.

<имя BAR меню> — имя горизонтального меню, которому при­надлежит описываемый пункт меню.

PROMPT <выр.С1> — определяет название пункта меню, кото­рое выводится на экран.

AT Y,X — переопределяет расположение пункта меню на экране.

BEFORE <имя пункта меню> — задает порядок обхода пунктов меню по возрастанию, начиная с пункта <ичя пункта мсню>.

AFTER <имя пункта меню> — задает порядок обхода пунктов ме­ню по убыванию, начиная с пункта <имя пункта меню>.

L

KEY <имя клавиши> [, <выр. С2> 1 — назначает клавишу (или комбинацию клавиш) для активации пункта меню. При установ­
ке курсора на пункт меню выводится дополнительное сообщение <выр. С2> в строку состояния.

MARK <выр.СЗ> — переопределяет символ множественного от­бора пунктов меню.

SKIP [ FOR <выр.1> ] — делает пункт меню недоступным для выбора пользователя. Если указан параметр FOR <выр.Ь>, то пункт меню будет доступен для выбора при истинности логиче­ского условия <выр.Ь>.

MESSAGE <выр.С4> — выводит на экран дополнительное со­общение <выр.С4>.

COLOR <СШ1С0К пар цветов> | COLOR SCHEME <выр.ГМ> — определяет цвет фона и цвет букв пункта меню.

8.2.2.3. Команда активации меню

ACTIVATE MENU <имя BAR-MeuK>>

[ NOWAIT)

[ PAD <нчя пункта меню> ]

Команда выводит на экран горизонтальное меню и делает его доступным дтя выбора пользователя. Активация меню произво­дится в любом месте программы, но после описания меню. На­значение опций:

NOWAIT — разрешает выполнение программы, не дожидаясь закрытия меню.

PAD <имя пункта меню> — определяет, какой пункт меню будет активен, после предьяатения меню на экран, то есть задает вы­бор по умолчанию.

Для этих же целей предусмотрена и вторая команда:

SHOW MENU <списокимси BAR-Meino> |ALL [PAD <имя пункта меню> ]

[SAVE)

Назначение опций:

PAD <имя пункта меню> — определяет, какой пункт меню будет активен, после предъявления меню на экран, то есть задает вы­бор по умолчанию.

SAVE — сохраняет на экране образ меню после его закрытия.

8.2.2.4. Реакция на вызов горизонтального меню

ON SELECTION MENU <ичя BAR-Me»im> [ <комацца>}

Команда определяет реакцию на вызов меню, то есть ставит на выполнение общую для всего меню команду или процедуру, которая определена в параметре <команда>. Если параметр <команда> опущен, то отменяется ранее назначенная <комаша>.

8.2.2.5. Реакция на выбор пункта меню

ON SELECTION PAD <имя пункта чсню> ОЕ <имя BAR-mciuo> [ <команда> J

Команда определяет для конкретного пункта меню <имя путпета меню>, принадлежащего меню <имя ВАЛ-меню>. ко­манду или процедуру, которая определена в параметре <коман- да>, и ставит ее на выполнение.

8.2.2.6. Назначение подчиненного (младшего) меню

ON PAD <имя пункта меню> OF <имя ВАН-меню>

[ ACTIVATE POPUP <имя ГОРиР-меяю> |

ACTIVATE MENU <имя BAR-Meino> ]

Команда назначает путнету меню <имя пункта меню>, при­надлежащего меню OF <имя ВАК-меню>, подчиненное меню: либо вертикальное (ACTIVATE POPUP <и.мя РОРиР-мсню>), либо горизонтальное (ACTIVATE MENU <имя BAR-MeHio>).

Вместо этой команды можно использовать команду ON SELECTION PAD но при этом подчиненное меню будет выводиться на экран при выполнении двух условий: курсор дол­жен быть установлен на пункте горизонтального меню и должна быть нажата либо клавиша Enter, либо клавиша SpaceBar.

Для удаления связи по вызову подчиненного меню надо по­дать команду ON PAD без опций.

8.2.2J. Деактивация горизонтального меню

DEACTIVATE MENUS

Команда удаляет с экрана горизонтальное меню, но сохраня­ет его в оперативной памяти, и передает управление следующей команде программы.

8.2.2.8. Удаление всех горизонтальных меню CLEAR MENUS

Команда удаляет все меню с экрана и из оперативной памяти.

8.2.2.8. Удаление горизонтального меню

RELEASE MENUS I < список нмси BAR-mchio> [ EXTENDED J ]

Команда удаляет с экрана и из оперативной памяти перечис­ленные в <списке имен ВАЯ-меню> меню. Если указана опция EXTENDED, то одновременно удаляются и все подчиненные меню.

8.2.2.Э. Удаление пункта горизонтального меню

RELEASE PAD <имя пункта ченю> | ALL OF <нмя BAR-mcjdo>

Команда удаляет с экрана и из оперативной памяти указанный в <имени пункта мсню> пункт либо все (ALL) пункты меню из горизонтального меню, заданного в <имсни ВАИ-менюХ

8.2.2.10. Деактивация горизонтального меню

HIDE MENU <спнсок имев BAR-mchkj> | ALL [ SAVE J

Команда удаляет с экрана, но оставляет в оперативной памя­ти, либо указанные в <спискеимсн ВАК-меню> меню, либо все (ALL) меню. Если указана опция SAVE, то на экране остается образ удаленных меню.

Для работы с горизонтальным меню предусмотрены следую­щие функции.

MENUO — определение имена активного BAR-меню. Функция возвращает имя активного горизонтального меню.

PAD0 — определение имени выбранного пункта меню. Функция возвращает имя выбранного пользователем пункта меню. CNTPAD(<имя BAR-MeHK>>) — определение количества пунктов горизонтального меню. Функция возвращает количество пунк­тов указанного горизонтального меню.

MRKPAD(<имя BAR-Memo>, <ичя пупкта>) — определение имени выбранного (активного) пункта меню. Функция возвра­щает логическое значение «истина» (.Т.), если пункт, указан­ный в <имя пункта> из меню <имя BAR-mchk>>, выбран поль­зователем (активный пункт). В противном случае возвращается логическое значение «ложь» (.F.).

При создании двухуровневого меню надо выполнить следую­щие действия:

а) Описать главное горизонтальное меню командой DEFINE MENU...

б) Описать каждый пункт горизонтального меню командами DEFINE PAD...

в) Описать реакции на выбор пунктов (командами ON SELEC­TION PAD...) главного горизонтального меню, т. е. общую команду, выполняемую при выборе пункта меню.

г) Установить взаимосвязи между пунктами главного горизон­тального меню и вызываемыми подчиненными меню с по­мощью команд ON PAD...

д) Далее описываются сами подчиненные меню: либо верти­кальные — с помощью команд: DEFINE POPUP... и при необходимости с описанием каждого пункта меню, либо горизонтальные — с помощью команд DEFINE MENU... с описанием каждого пункта меню.

е) Активация всей конструкции меню командой ACTIVATE MENU... и деактивация меню командой DEACTIVATE MENU...

ж) Анализ выбора пользователя производится с помощью функ­ций BAR(), POPUPO, PROMPTO, MENUO, PAD() и т. д.

Для создания динамических меню и управления отображени­ем меню на экране можно использовать следующие команды:

SET SKIP OF MENU <имя горизонтального меню> <выр.1>

SET SKIP OF PAD <нчя пункта горизонтального меню> OF <нчя горизонтального менк>> <выр.Ь>

SET SKIP OF POPUP <нмя контекстного (всплывающего)меню> <выр.1>

SET SKIP OF BAR <Bup.N> | <имя пункта > OF <имя контекстного (всплывающего) мсюо> <выр.Ь>


Если логическое выражение <выр.Ц> истинно, то все меню (или пункт меню) доступно для выбора. В противном случае ме­ню не доступно. В последней команде пункт меню можно задать либо его порядковым номером <Bbip.N>, либо его именем <имя пункта >. Контекстным меню называется вертикальное POPUP- меню, которое предъявляется в любом месте экрана, как прави­ло, с помощью щелчка правой кнопкой мыши.

8.3. КЛАВИШНОЕ МЕНЮ

В отличие от светового меню, клавишное меню не имеет в своем составе каких-либо элементов управления расположенных на экране. Клавишное меню представляет собой набор одно- или двухклавишных команд. Иногда в последней строке экране раз­мещают подсказку о назначении команд клавишного меню. Юга- вишнос меню предназначено для реализации простых и часто повторяющихся операций по обработке данных.

Команды клавишного меню устанавливают связь между про­граммой и прерываниями от нажатия клавиш или для обработки возникших во время работы программы ошибок. Для создания клавишного меню используются следующие команды.

8.3.1. Фиксация возникновения ошибки во время выполнения программы

ON ERROR [<комаича>)

Команда осуществляет переход к выполнению <команды> при возникновении любой ошибки при выполнении программы.

8.3.2. Фиксация ошибок ввода

ON READERROR [<команда>]

При обнаружении ошибки ввода ставится на выполнение <команда>. Ошибка ввода возникает при вводе данных не соот­ветствующего типа, при нарушении границ допустимых значе­ний данных или при нарушении логических условий.

8.3.3. Фиксация нажатия клавиши Esc

ON ESCAPE [<комаыда>]

После нажатия клавиши Esc ставится на выполнение коман­да. указанная в параметре <команда>. Если ранее по тексту про­граммы была установлена команда SET ESCAPE OFF, то коман­да ON ESCAPE... не выполняется.

8.3.4. Фиксация нажатия любой клавиши

ON KEY [<комаеда>]

После нажатия любой клавиши выполняется команда, указанная в параметре <команда>. Эта команда работает во всех режимах, кроме режима редактирования.

8.3.5. Фиксация нажатия клавиши с указанным кодом

ON KEY = <Bup.N> [<команда>]

После нажатия клавиши с кодом <выр.М> ставится на вы­полнение команда, указанная в параметре <команда>.

8.3.6. Фиксация нажатия клавиши с указанным именем

ON KEY [LABEL <имя клавнши>] [<команда>]

После нажатия клавиши с именем <имя клавиши> ставится на выполнение команда, указанная в параметре <командах Имя клавиши задается как строчными, так и прописными буквами. Клавиши, описанные этой командой, остаются активными во всех режимах работы. Нажатие такой клавиши в любой момент времени и в любом месте программы влечет за собой немедлен­ное выполнение предусмотренной в параметре <команда> про­цедуры или команды. Поэтому при выполнении длительных вычислительных операций необходимо предусмотреть отмену команд ON KEY LABEL... и ON KEY =... теми же команда­ми, но без опций или командой PUSH KEY CLEAR.

В командах ON KEY = и ON KEY LABEL... можно указать почти все клавиши и комбинации клавиш. В программе допускает­ся использование только одной активной команды ON KEY =..., в то время как активных команд ON KEY LABEL...может быть несколько.

L

Все ON-команды, кроме команды ON KEY LABEL..., ра­ботают до тех пор, пока не будет обнаружена следующая такая же
команда. Дня отмены действия любой О IS-команды надо подать ту же команду, но без опции.

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

Чаше всего клавишные меню используются в режимах редак­тирования: BROWSE, EDIT, CHANGE и READ.

8.3.7. Сохранение клавишных назначений в оперативной памяти

PUSH KEY [CLEAR]

Команда сохраняет все сделаные назначения командами ON KEY LABEL... в специальной области оперативной памяти, ко­торая называется стеком. Если указана опция CLEAR, то допол­нительно прекращается действие клавишнььч назначений в рабо­тающей программе. При последовательном вызове команды PUSH KEY... в стек будет записано несколько отдельных групп клавишных назначений. Извлекаться из стека группы назначе­ний будут в обратном порядке.


Дата добавления: 2015-09-29; просмотров: 19 | Нарушение авторских прав







mybiblioteka.su - 2015-2024 год. (0.041 сек.)







<== предыдущая лекция | следующая лекция ==>