Функция BAR()

Возвращает номер последнего выбранного элемента меню, определенного с помощью команды DEFINE POPUP, или номер элемента меню Visual FoxPro.

Синтаксис:

BAR()

Результат:
Числовой

Комментарии:
Каждому элементу меню присваивается номер командой DEFINE BAR. Когда элемент меню выбирается из меню, функция BAR() возвращает номер этого элемента. В зависимости от возвращенного функцией BAR() значения, в программе можно задать переход на ту или иную подпрограмму.
BAR() возвращает 0, если активных меню нет или если пользователь вышел из меню, нажав клавишу Esc.

Пример:

* В данном примере функция BAR( ) используется для передачи номера
* элемента меню в процедуру. Текущая системная строка меню
* сохраняется в памяти по команде SET SYSMENU SAVE, а затем все
* заголовки системных меню удаляются командой SET SYSMENU TO.
* Командами DEFINE PAD создаются два заголовка меню, и для каждого
* из них с помощью команды DEFINE POPUP строится меню. Команда
* DEFINE BAR используется для создания элементов в каждом меню. При
* выборе заголовка меню команда ON PAD с помощью команды ACTIVATE
* POPUP активизирует соответствующее меню.
* Когда вы выбираете элемент из меню, команда ON SELECTION POPUP с
* помощью функций BAR( ) и POPUP( ) передает номер элемента и
* заголовок меню в процедуру choice. Эта процедура отображает на экране
* номер выбранного элемента и название содержащего его меню. Если вы
* выберете Exit в меню Card Info, то по команде SET SYSMENU TO DEFAULT
* будет восстановлена первоначальная система меню Visual FoxPro.
*** Name this program BAR_EXAM.PRG ***
CLEAR
SET SYSMENU SAVE
SET SYSMENU TO
DEFINE PAD padConv OF _MSYSMENU ;
	PROMPT '\<Conversions' COLOR SCHEME 3 ;
	KEY ALT+C, ''
DEFINE PAD padCard OF _MSYSMENU ;
	PROMPT 'Card \<Info' COLOR SCHEME 3 ;
	KEY ALT+I, ''
ON PAD padConv OF _MSYSMENU ACTIVATE POPUP popConv
ON PAD padCard OF _MSYSMENU ACTIVATE POPUP popCard
DEFINE POPUP popConv MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF popConv PROMPT 'Ar\<ea' KEY CTRL+E, '^E'
DEFINE BAR 2 OF popConv PROMPT '\<Length' ;
	KEY CTRL+L, '^L'
DEFINE BAR 3 OF popConv PROMPT 'Ma\<ss' ;
	KEY CTRL+S, '^S'
DEFINE BAR 4 OF popConv PROMPT 'Spee\<d' ;
	KEY CTRL+D, '^D'
DEFINE BAR 5 OF popConv PROMPT '\<Temperature' ;
	KEY CTRL+T, '^T'
DEFINE BAR 6 OF popConv PROMPT 'T\<ime' ;
	KEY CTRL+I, '^I'
DEFINE BAR 7 OF popConv PROMPT 'Volu\<me' ;
	KEY CTRL+M, '^M'
*** Here is where the POPCONV menu uses the BAR( ) function
*** to pass a bar number to the procedure called choice below.
ON SELECTION POPUP popConv;
	DO choice IN bar_exam WITH BAR( ), POPUP( )
DEFINE POPUP popCard MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF popCard PROMPT '\<View Charges' ;
	KEY ALT+V, ''
DEFINE BAR 2 OF popCard PROMPT 'View \<Payments' ;
	KEY ALT+P, ''
DEFINE BAR 3 OF popCard PROMPT 'Vie\<w Users' ;
	KEY ALT+W, ''
DEFINE BAR 4 OF popCard PROMPT '\-'
DEFINE BAR 5 OF popCard PROMPT '\<Charges ';
	KEY ALT+C
DEFINE BAR 6 OF popCard PROMPT '\-'
DEFINE BAR 7 OF popCard PROMPT 'E\<xit ';
	KEY ALT+X
*** Here is where the POPCARD menu uses the BAR( ) function
*** to pass a bar number to the procedure called choice below.
ON SELECTION POPUP popCard;
	DO choice IN bar_exam WITH BAR( ), POPUP( )
*** The procedure choice uses the gnBar parameter
*** to contain the value passed by the BAR( ) function.
PROCEDURE choice
PARAMETERS gnBar, gcPopup
WAIT WINDOW 'You chose bar #' + LTRIM(STR(gnBar)) + ;
	' from popup ' + gcPopup NOWAIT
SET SYSMENU TO DEFAULT
ENDIF

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