Выводит и активизируют строку меню.

ACTIVATE MENU MenuBarName   [NOWAIT]   [PAD MenuTitleName]

Параметры

MenuBarName

Определяет имя строки меню для активизации.
NOWAIT

Определяет, что в run time программа не должна ждать действий пользователя по выбору меню из активной строки меню или нажатия ESC. Вместо этого, программа продолжает выполняться. Меню, активизированное с опцией NOWAIT не возвращает выполнение программы к строке следующей за командой ACTIVATE MENU после применения DEACTIVATE MENU.
PAD MenuTitleName

Определяет имя заголовка меню, которое автоматически получает фокус при активизации строки меню. Если Вы не определяете имя заголовка меню, то активируется имя первого заголовка меню в активизированной строке меню по умолчанию.

Замечания

Выводит и активизируют строку меню, указанную MenuBarName . Эта команда работает вместе с DEFINE MENU и DEFINE PAD.

Обратите внимание:
Когда Вы включаете полосу системного меню Visual FoxPro (_MSYSMENU) в приложение, то нет необходимости активизировать меню. Вместо этого применяйте SET SYSMENU AUTOMATIC.

Пример

Следующий пример использует ACTIVATE MENU, чтобы вывести и активизировать определяемую пользователем систему меню. Текущая полоса системного меню сначала сохраняется в памяти командой SET SYSMENU SAVE и затем удаляются все заголовки системного меню с помощью SET SYSMENU TO.

Создаются два заголовка меню командой DEFINE PAD; команда DEFINE POPUP используется, чтобы создать выпадающее меню для каждого заголовка меню. Используется DEFINE BAR для создания пунктов каждого из этих меню. Когда заголовок меню выбран, ON PAD использует команду ACTIVATE POPUP, чтобы активизировать соответствующее меню. Команда ACTIVATE MENU выводит и активизирует строку меню.

Когда выбирается пункт меню, выполняется процедура CHOICE. CHOICE отображает имя выбранного пункта и имя меню, содержащего этот пункт.

Скопировать код
*** Name this program ACTIMENU.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 actimenu;
   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 ' ;
   KEY ALT+C, ''
ON SELECTION POPUP cardinfo;
   DO choice IN actimenu WITH PROMPT( ), POPUP( )
ACTIVATE MENU example
DEACTIVATE MENU example
RELEASE MENU example EXTENDED
SET SYSMENU TO DEFAULT
ON KEY LABEL ESC
PROCEDURE choice
PARAMETERS mprompt, mpopup
WAIT WINDOW 'You chose ' + mprompt + ' from popup ' + mpopup NOWAIT

См. Также