Возвращает номер последнего выбранного элемента меню, определенного с помощью команды 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 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 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 |