Команда ON SELECTION MENU

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

Синтаксис:

ON SELECTION MENU MenuBarName | ALL
	[Command]

Параметры:
MenuBarName
Задает имя строки меню, которой назначается команда. Эта команда будет выполняться при выборе любого заголовка меню из строки меню. Можно также задать имя строки меню, созданной пользователем командой DEFINE MENU, или имя системной строки меню Visual FoxPro _MSYSMENU.
ALL
Выполняет команду при выборе любого заголовка меню из любой строки меню.
Command
Задает команду, которую следует выполнить при выборе заголовка меню. Чтобы открепить команду, назначенную строке меню, выдайте ON SELECTION MENU без команды.

Комментарии:
Когда вы создаете и активизируете строку меню, поставьте ON SELECTION MENU между командами DEFINE MENU и ACTIVATE MENU.
Чтобы выполнять команду при выборе конкретного элемента меню, воспользуйтесь командой ON SELECTION PAD. Она имеет более высокий приоритет по сравнению с ON SELECTION MENU. Чтобы активизировать меню или строку меню при выборе конкретного заголовка меню, воспользуйтесь командой ON PAD.
Чтобы открепить команду, назначенную строке меню, выдайте ON SELECTION MENU без команды.

Пример:

* В данном примере команда ON SELECTION MENU используется для
* выполнения определенной процедуры при выборе заголовка меню из
* системной строки меню Visual FoxPro.
* Текущая системная строка меню сохраняется в памяти по команде SET
* SYSMENU SAVE, и все заголовки системных меню удаляются командой
* SET SYSMENU TO.
* Команда DEFINE PAD создает несколько заголовков системных меню.
* При выборе заголовка выполняется процедура choice, назначаемая
* строке меню командой ON SELECTION MENU. Эта процедура отображает
* на экране выбранный заголовок меню и имя строки меню. Если выбрать
* заголовок Exit, будет восстановлена первоначальная система меню Visual
* FoxPro.
*** Name this program ONMENU.PRG ***

CLEAR
SET SYSMENU SAVE
SET SYSMENU TO
DEFINE PAD padSys OF _MSYSMENU PROMPT '\<System' COLOR SCHEME 3 ;
	KEY ALT+S, ''
DEFINE PAD padEdit OF _MSYSMENU PROMPT '\<Edit' COLOR SCHEME 3 ;
	KEY ALT+E, ''
DEFINE PAD padRecord OF _MSYSMENU PROMPT '\<Record' COLOR SCHEME 3 ;
	KEY ALT+R, ''
DEFINE PAD padWindow OF _MSYSMENU PROMPT '\<Window' COLOR SCHEME 3 ;
	KEY ALT+W, ''
DEFINE PAD padReport OF _MSYSMENU PROMPT 'Re\<ports' COLOR SCHEME 3 ;
	KEY ALT+P, ''
DEFINE PAD padExit OF _MSYSMENU PROMPT 'E\<xit' COLOR SCHEME 3 ;
	KEY ALT+X, ''
ON SELECTION MENU _MSYSMENU ;
	DO choice IN onmenu WITH PAD( ), MENU( )
PROCEDURE choice
PARAMETER gcPad, gcMenu
WAIT WINDOW 'You chose ' + gcPad + ;
	' from menu ' + gcMenu NOWAIT
IF gcPad = 'PADEXIT'
	SET SYSMENU TO DEFAULT
ENDIF

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