Команда ON BAR

Задает меню или строку меню, которые активизируются при выборе определенного элемента из меню.

Синтаксис:

ON BAR nMenuItemNumber OF MenuName1
	[ACTIVATE POPUP MenuName2
	| ACTIVATE MENU MenuBarName]

Параметры:
nMenuItemNumber OF MenuName1
Задает номер элемента меню и само меню, которое содержит этот элемент, активизирующий другое меню или строку меню. Каждому элементу меню может быть сопоставлено другое меню или строка меню.
Если элементу меню сопоставлено меню или строка меню, то справа от его названия ставится стрелка. Она показывает, что при выборе данного элемента меню активизируется другое меню или строка меню. Если вы определяете меню с помощью команды DEFINE POPUP ... MARGIN, справа от каждого элемента оставляется дополнительное место для стрелки, обозначающей ниспадающие подменю. Если вы создаете меню без предложения MARGIN, стрелка ниспадающих подменю может оказаться изображенной поверх последнего символа элемента меню.
ACTIVATE POPUP MenuName2
Задает имя меню, которое активизируется при выборе данного элемента меню. Используйте команду ON BAR без ACTIVATE POPUP для открепления меню от элемента меню.
ACTIVATE MENU MenuBarName
Задает имя строки меню, которая активизируется при выборе данного элемента меню. Используйте команду ON BAR без ACTIVATE MENU, чтобы открепить строку меню от элемента меню.

Комментарии:
Меню, которое отображает и активизирует другое меню, называется ниспадающим подменю. Для выполнения команды при выборе элемента меню используйте команду ON SELECTION BAR или ON SELECTION POPUP.
Меню и строка меню могут быть определены пользователем (командами DEFINE POPUP и DEFINE MENU) или входить в состав системы меню Visual FoxPro.

Пример:

* Следующий пример демонстрирует систему ниспадающих подменю.
* Создается строка меню mnuDinner, в которую включаются два заголовка
* меню. Каждый заголовок использует команду ON PAD для активизации
* меню popMainCourse или popDessert. Каждое из этих двух меню имеет
* дополнительные меню ѕ popBurger, popPizza и popPie, которые
* закреплены за элементами этих меню с помощью трех команд ON BAR.
* Две команды ON BAR закрепляют дополнительные меню за элементами
* popOlives и popPie.
* Когда вы выбираете элемент, команда ON SELECTION POPUP ALL
* выполняет процедуру yourchoice, которая активизирует окно и
* отображает ваш выбор. Выбор определяется функциями POPUP( ) и
* PROMPT( ), которые возвращают имя меню и содержимое (текст)
* элемента меню.

DEFINE WINDOW wOrder FROM 10,0 TO 13,39
DEFINE MENU mnuDinner
DEFINE PAD padOne OF mnuDinner PROMPT '\<Main Course' KEY ALT+M, ''
DEFINE PAD padTwo OF mnuDinner PROMPT '\<Dessert'     KEY ALT+D, ''
ON PAD padOne OF mnuDinner ACTIVATE POPUP popMainCourse
ON PAD padTwo OF mnuDinner ACTIVATE POPUP dessert
DEFINE POPUP popMainCourse MARGIN MESSAGE ;
	'We have burgers and pizza today'
DEFINE BAR 1 OF popMainCourse PROMPT '\<Hamburgers'
DEFINE BAR 2 OF popMainCourse PROMPT '\<Pizza'
ON BAR 1 OF popMainCourse ACTIVATE POPUP burger
ON BAR 2 OF popMainCourse ACTIVATE POPUP pizza
DEFINE POPUP burger MARGIN MESSAGE ;
	'What would you like on your burger?'
DEFINE BAR 1 OF burger PROMPT '\<Ketchup'
DEFINE BAR 2 OF burger PROMPT '\<Mustard'
DEFINE BAR 3 OF burger PROMPT '\<Onions'
DEFINE BAR 4 OF burger PROMPT '\<Pickles'
DEFINE POPUP pizza MARGIN MESSAGE ;
	'Here are the available toppings'
DEFINE BAR 1 OF pizza PROMPT '\<Anchovies'
DEFINE BAR 2 OF pizza PROMPT '\<Green Peppers'
DEFINE BAR 3 OF pizza PROMPT '\<Olives'
DEFINE BAR 4 OF pizza PROMPT '\<Pepperoni'
ON BAR 3 OF pizza ACTIVATE POPUP olives
DEFINE POPUP olives MARGIN
DEFINE BAR 1 OF olives PROMPT '\<Black' MESSAGE 'Black olives?'
DEFINE BAR 2 OF olives PROMPT '\<Green' MESSAGE 'Green olives?'
DEFINE POPUP dessert MARGIN MESSAGE 'Our dessert offerings'
DEFINE BAR 1 OF dessert PROMPT '\<Brownies'
DEFINE BAR 2 OF dessert PROMPT '\<Cookies'
DEFINE BAR 3 OF dessert PROMPT '\<Ice Cream'
DEFINE BAR 4 OF dessert PROMPT '\<Pie'
ON BAR 4 OF dessert ACTIVATE POPUP pie
DEFINE POPUP pie MARGIN MESSAGE 'What kind of pie?'
DEFINE BAR 1 OF pie PROMPT '\<Blueberry'
DEFINE BAR 2 OF pie PROMPT '\<Cherry'
DEFINE BAR 3 OF pie PROMPT '\<Peach'
DEFINE BAR 4 OF pie PROMPT '\<Rhubarb'
ON SELECTION POPUP ALL DO yourchoice
ACTIVATE MENU mnuDinner
PROCEDURE yourchoice
ACTIVATE WINDOW wOrder
CLEAR
DO CASE
	CASE POPUP( ) = 'BURGER'
		@ 0,0 SAY 'A ' + POPUP( ) + ' order:'
		@ 1,0 SAY 'You ordered a burger with ' + LOWER(PROMPT( ))
	CASE POPUP( ) = 'PIZZA'
		@ 0,0 SAY 'A ' + POPUP( ) + ' order:'
		@ 1,0 SAY 'You ordered a pizza with ' + LOWER(PROMPT( ))
	CASE POPUP( ) = 'OLIVES'
		@ 0,0 SAY 'A ' + POPUP( ) + ' order:'
		@ 1,0 SAY 'You ordered a pizza with ' ;
			+ LOWER(PROMPT( )) + ' olives'
	CASE POPUP( ) = 'DESSERT'
		@ 0,0 SAY 'A ' + POPUP( ) + ' order:'
		@ 1,0 SAY 'You ordered ' + LOWER(PROMPT( )) + ' for dessert'
	CASE POPUP( ) = 'PIE'
		@ 0,0 SAY 'A ' + POPUP( ) + ' order:'
		@ 1,0 SAY 'You ordered ' + LOWER(PROMPT( )) + ' pie'
ENDCASE
WAIT WINDOW
DEACTIVATE WINDOW wOrder
RETURN

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