Показывает и активизируют меню.

ACTIVATE POPUP MenuName   [AT nRow, nColumn]   
[BAR nMenuItemNumber] [NOWAIT] [REST]

Параметры

MenuName

 Определяет имя меню которое активизируется.
AT nRow, nColumn

Задает позицию меню на экране или в окне, определенном пользователем. Указываются координаты (строка и столбец) левого верхнего угла меню. Заданная таким образом позиция отменяет позицию, заданную аргументом FROM в команде DEFINE POPUP.
BAR nMenuItemNumber

Задает элемент меню, который будет изображен выбранным при активизации меню. Например, если nMenuItemNumber равно 2, выбирается второй элемент. Если предложение BAR nMenuItemNumber опущено или если значение nMenuItemNumber превышает число элементов меню, будет выбран первый элемент.
NOWAIT

Указывает, что на этапе выполнения программа не станет ждать, пока пользователь выберет элемент из меню, а продолжит выполнение.
REST

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

Замечания

Команда ACTIVATE POPUP работает совместно с командой DEFINE POPUP, используемой для создания меню, и командой DEFINE BAR, используемой для создания элементов меню.

Example

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

С помощью DEFINE PAD создаются два заголовка меню, а DEFINE POPUP используется для создания меню для каждого заголовка. DEFINE BAR используется для создания элементов меню для каждого меню. Если выбрать заголовок меню, ON PAD использует ACTIVATE POPUP для активизации соответствующего меню.

При выборе из меню элемента меню выполняется процедура CHOICE. CHOICE выводит имя выбранного элемента и имя меню, содержащего элемент. Если из меню Card Info выбирается элемент Exit, то восстанавливается начальное системное меню Visual FoxPro.

  Копировать код
*** Name this program ACTIPOP.PRG ***
CLEAR
SET SYSMENU SAVE
SET SYSMENU TO
DEFINE PAD convpad OF _MSYSMENU PROMPT '\<Conversions' COLOR SCHEME 3 ;
KEY ALT+C, ''
DEFINE PAD cardpad OF _MSYSMENU PROMPT 'Card \<Info' COLOR SCHEME 3 ;
KEY ALT+I, ''
ON PAD convpad OF _MSYSMENU ACTIVATE POPUP conversion
ON PAD cardpad OF _MSYSMENU 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 actipop 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, ''
DEFINE BAR 6 OF cardinfo PROMPT '\-'
DEFINE BAR 7 OF cardinfo PROMPT 'E\<xit';
KEY ALT+X, ''
ON SELECTION POPUP cardinfo;
DO choice IN actipop WITH PROMPT(),POPUP()

PROCEDURE choice
PARAMETERS mprompt, mpopup
WAIT WINDOW 'You chose ' + mprompt + ;
' from popup ' + mpopup NOWAIT
IF mprompt = 'Exit'
SET SYSMENU TO DEFAULT
ENDIF

См. также