Команда DEACTIVATE MENU

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

Синтаксис:

DEACTIVATE MENU MenuName1 [, MenuName2 ...] | ALL

Параметры:
MenuName1 [, MenuName2 ...]
Задает имя строки меню, которое нужно деактивизировать. Можно деактивизировать несколько строк меню, задав список их имен через запятую.
ALL
Деактивизирует все активные меню.

Комментарии:
Команда DEACTIVATE MENU удаляет активную (активные) строку меню из главного окна Visual FoxPro или из окна, определенного пользователем, не удаляя определение строки меню из памяти. Строка меню может быть вновь активизирована под тем же именем командой ACTIVATE MENU.
Совет Включая в приложение системную строку меню (_MSYSMENU), нет необходимости определять, активизировать или деактивизировать эти строки меню ѕ достаточно выдать команду SET SYSMENU AUTOMATIC.
Чтобы освободить какую-то строку меню или группу строк меню из памяти, пользуйтесь командой RELEASE MENUS. Можно освободить сразу все строки меню из памяти командой CLEAR MENUS или CLEAR ALL.
Управление возвращается в строку программы, непосредственно следующую за строкой с командой активизации строки меню, если только не была использована команда DEFINE MENU BAR для создания строки меню или ACTIVATE MENU NOWAIT для ее активизации.

Пример:

* В следующем примере команда DEACTIVATE MENU деактивизирует меню
* и удаляет его с экрана. Текущая системная строка меню сохраняется в
* памяти по команде SET SYSMENU SAVE, и все заголовки системных меню
* удаляются по команде SET SYSMENU TO.
* С помощью команды DEFINE PAD создаются два заголовка меню, а
* команда DEFINE POPUP создает меню для каждого из этих заголовков.
* Команда DEFINE BAR создает элементы этих меню. Когда выбирается
* заголовок меню, команда ON PAD с помощью ACTIVATE POPUP
* активизирует соответствующее меню. ACTIVATE MENU отображает и
* активизирует строку меню.
* Когда в меню выбирается элемент, выполняется процедура CHOICE. Она
* отображает имя выбранного элемента и имя содержащего его меню.
* Управление передается на строку, следующую за командой ACTIVATE
* MENU.
* Наконец, меню деактивизируется и удаляется с экрана, а затем
* освобождается из памяти по команде RELEASE MENUS EXTENDED.
*** Name this program DEACMENU.PRG ***
CLEAR
SET SYSMENU SAVE
SET SYSMENU TO
ON KEY LABEL ESC KEYBOARD CHR(13)
DEFINE MENU example BAR AT LINE 1
DEFINE PAD convpad OF example PROMPT '\<Conversions' COLOR SCHEME 3 ;
	KEY ALT+C, ''
DEFINE PAD cardpad OF example PROMPT 'Card \<Info' COLOR SCHEME 3 ;
	KEY ALT+I, ''
ON PAD convpad OF example ACTIVATE POPUP conversion
ON PAD cardpad OF example ACTIVATE POPUP cardinfo
DEFINE POPUP conversion MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF conversion PROMPT 'Ar\<ea' ;
	KEY CTRL+E, '^E'
DEFINE BAR 2 OF conversion PROMPT '\<Length' ;
	KEY CTRL+L, '^L'
DEFINE BAR 3 OF conversion PROMPT 'Ma\<ss' ;
	KEY CTRL+S, '^S'
DEFINE BAR 4 OF conversion PROMPT 'Spee\<d' ;
	KEY CTRL+D, '^D'
DEFINE BAR 5 OF conversion PROMPT '\<Temperature' ;
	KEY CTRL+T, '^T'
DEFINE BAR 6 OF conversion PROMPT 'T\<ime' ;
	KEY CTRL+I, '^I'
DEFINE BAR 7 OF conversion PROMPT 'Volu\<me' ;
	KEY CTRL+M, '^M'
ON SELECTION POPUP conversion ;
	DO choice IN deacmenu WITH PROMPT( ), POPUP( )
DEFINE POPUP cardinfo MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF cardinfo PROMPT '\<View Charges' ;
	KEY ALT+V, ''
DEFINE BAR 2 OF cardinfo PROMPT 'View \<Payments' ;
	KEY ALT+P, ''
DEFINE BAR 3 OF cardinfo PROMPT 'Vie\<w Users' ;
	KEY ALT+W, ''
DEFINE BAR 4 OF cardinfo PROMPT '\-'
DEFINE BAR 5 OF cardinfo PROMPT '\<Charges '
ON SELECTION POPUP cardinfo;
	DO choice IN deacmenu WITH PROMPT( ), POPUP( )

ACTIVATE MENU example
DEACTIVATE MENU example
RELEASE MENU example EXTENDED
SET SYSMENU NOSAVE
SET SYSMENU TO DEFAULT
ON KEY LABEL ESC

PROCEDURE choice
PARAMETERS mprompt, mpopup
WAIT WINDOW 'You chose ' + mprompt + ;
	' from popup ' + mpopup NOWAIT

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