Compartir a través de


CNTBAR( ) (Función)

Devuelve el número de elementos de un menú definido por el usuario o del menú de sistema de Visual FoxPro.

CNTBAR(cMenuName)

Valores devueltos

Numeric

Parámetros

  • cMenuName
    Especifica el nombre del menú cuyo número de elementos devuelve CNTBAR( ). Para ver una lista de los nombres de menú de sistema de Visual FoxPro, consulte el tema Nombres de menú del sistema.

Observaciones

Si un menú definido por el usuario se crea con la opción PROMPT de DEFINE POPUP, Visual FoxPro evaluará el número de elementos de menú cuando se ejecute ACTIVATE POPUP. Para un menú de este tipo, CNTBAR( ) devuelve un valor significativo únicamente después que se haya activado el menú. Sin embargo, si los elementos del menú se crean mediante DEFINE BAR, CNTBAR( ) podrá determinar el número de elementos de menú antes de que el usuario ejecute ACTIVATE POPUP.

Ejemplo

En el siguiente programa de ejemplo, CNTBAR.PRG agrega un título de menú al menú del sistema. El menú llamado popEnv se crea con cuatro elementos de menú. El programa coloca un carácter de marca en cada elemento cuando el elemento se selecciona. CNTBAR( ) se usa dentro de un bucle para mostrar inicialmente marcas junto a los elementos de menú apropiados.

** You must name this program CNTBAR.PRG ** CLEAR SET TALK OFF DEFINE PAD padEnv OF _MSYSMENU PROMPT 'E<nvironment'; KEY ALT+R, 'ALT+R' ON PAD padEnv OF _MSYSMENU ACTIVATE POPUP popEnv DEFINE POPUP popEnv MARGIN RELATIVE COLOR SCHEME 4 DEFINE BAR 1 OF popEnv PROMPT '<Status Bar' DEFINE BAR 2 OF popEnv PROMPT '<Clock' DEFINE BAR 3 OF popEnv PROMPT '<Extended Video' DEFINE BAR 4 OF popEnv PROMPT 'St<icky' ON SELECTION POPUP popEnv DO enviropop IN cntbar.prg FOR i = 1 TO CNTBAR('popEnv') DO CASE CASE PRMBAR('popEnv', i) = 'Status Bar' IF _WINDOWS or _MAC SET MARK OF BAR i OF popEnv TO SET('STATUS BAR') = 'ON' ELSE SET MARK OF BAR i OF popEnv TO SET('STATUS') = 'ON' ENDIF CASE PRMBAR('popEnv', i) = 'Clock' SET MARK OF BAR i OF popEnv TO SET('CLOCK') = 'ON' CASE PRMBAR('popEnv', i) = 'Extended Video' SET MARK OF BAR i OF popEnv TO SROW( ) > 25 CASE PRMBAR('popEnv', i) = 'Sticky' SET MARK OF BAR i OF popEnv TO SET('STICKY') = 'ON' ENDCASE ENDFOR PROCEDURE enviropop DO CASE CASE PROMPT() = 'Status' IF mrkbar('popEnv', BAR( )) DO CASE CASE _WINDOWS OR _MAC SET STATUS BAR OFF CASE _DOS SET STATUS OFF OTHERWISE ENDCASE SET MARK OF BAR BAR( ) OF popEnv TO .F. ELSE DO CASE CASE _WINDOWS OR _MAC SET STATUS BAR ON CASE _DOS SET STATUS ON OTHERWISE ENDCASE SET MARK OF BAR BAR( ) OF popEnv TO .T. ENDIF CASE PROMPT( ) = 'Clock' IF mrkbar('popEnv', BAR( )) SET CLOCK OFF SET MARK OF BAR BAR( ) OF popEnv TO .F. ELSE DO CASE CASE _WINDOWS OR _MAC SET STATUS BAR ON SET CLOCK STATUS CASE _DOS SET CLOCK ON OTHERWISE ENDCASE SET MARK OF BAR BAR( ) OF popEnv TO .T. ENDIF CASE PROMPT( ) = 'Extended Video' IF MRKBAR('popEnv', BAR( )) SET DISPLAY TO VGA25 SET MARK OF BAR BAR( ) OF popEnv TO .F. ELSE SET DISPLAY TO VGA50 SET MARK OF BAR BAR( ) OF popEnv TO .T. ENDIF CASE PROMPT( ) = 'Sticky' IF MRKBAR('popEnv', BAR( )) DO CASE CASE _WINDOWS OR _MAC WAIT WINDOW 'STICKY is always on in this Visual FoxPro version' CASE _DOS SET STICKY OFF OTHERWISE ENDCASE SET MARK OF BAR BAR( ) OF popEnv TO .F. ELSE DO CASE CASE _WINDOWS OR _MAC WAIT WINDOW 'STICKY is always ON in Visual FoxPro' CASE _DOS SET STICKY ON OTHERWISE ENDCASE SET MARK OF BAR BAR( ) OF popEnv TO .T. ENDIF ENDCASE

Vea también

ACTIVATE POPUP | CNTPAD( ) | CREATE MENU | DEFINE BAR | DEFINE POPUP | GETBAR( ) | MRKBAR( ) | ON BAR | ON SELECTION BAR | PRMBAR( )