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

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

Параметры

MenuName1[, MenuName2...]

Определяет имена деактивируемых меню. В списке имена указываются через запятую. 
ALL

Деактивирует все активные сеню. 

Комментарии

Команда DEACTIVATE MENU удаляет с экрана пользовательские меню или разделы из главного меню системы, но не удаляет их определения из памяти. Данное меню может быть активировано командой 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 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 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

См. также