Compartir a través de


BAR( ) (Función)

Devuelve el número del elemento elegido más recientemente de un menú definido mediante DEFINE POPUP o de un elemento elegido en un menú de Visual FoxPro.

BAR( )

Valores devueltos

Numeric

Observaciones

Cada elemento de un menú tiene asignado un número mediante DEFINE BAR. Cuando se elige un elemento en un menú, BAR( ) devuelve el número asignado a dicho elemento. Un programa puede bifurcarse a otras rutinas según el valor devuelto por BAR( ).

BAR( ) devuelve 0 si no hay ningún menú activo o si el usuario presiona ESC para salir del menú.

Ejemplo

El ejemplo siguiente utiliza BAR( ) para transferir a un procedimiento el número de un elemento de menú. La barra de menús del sistema actual se guarda en memoria mediante SET SYSMENU SAVE y, después, se eliminan todos los títulos de menús del sistema mediante SET SYSMENU TO.

Se crean dos títulos de menú con DEFINE PAD y se utiliza DEFINE POPUP para crear un menú para cada título de menú. DEFINE BAR se utiliza para crear elementos en cada menú. Cuando elija un título de menú, ON PAD utilizará ACTIVATE POPUP para activar el menú correspondiente.

Cuando elija un elemento de un menú, ON SELECTION POPUP utilizará BAR( ) y POPUP( ) para transferir el número del elemento y el título del menú al procedimiento elec. El procedimiento choice muestra el número del elemento elegido y el nombre del menú que contiene el elemento; además, se restaura el menú de sistema original de Visual FoxPro con SET SYSMENU TO DEFAULT.

** 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

Vea también

ACTIVATE POPUP | CNTBAR( ) | DEFINE BAR | DEFINE POPUP | GETBAR( ) | MRKBAR( ) | ON BAR | ON SELECTION BAR | PRMBAR( )