CNTBAR( )-Funktion
Gibt die Anzahl der Menüeinträge eines benutzerdefinierten Menüs oder des Visual FoxPro-Systemmenüs zurück.
CNTBAR(cMenuName)
Rückgabewerte
Numerisch
Parameter
- cMenuName
Gibt den Namen des Menüs an, dessen Menüeintraganzahl CNTBAR( ) zurückgeben soll. Unter Systemmenünamen finden Sie eine Liste der Visual FoxPro-Systemmenünamen.
Hinweise
Wurde ein benutzerdefiniertes Menü mit dem DEFINE POPUP-Befehl und der PROMPT-Option erstellt, berechnet Visual FoxPro bei der Ausgabe von ACTIVATE POPUP die Anzahl der Menübefehle. Bei einem solchen Menü gibt CNTBAR( ) erst nach Aktivierung des Menüs einen sinnvollen Wert zurück. Wurden die Menübefehle jedoch mit DEFINE BAR erstellt, kann CNTBAR( ) die Anzahl der Menübefehle auch vor Ausgabe von ACTIVATE POPUP ermitteln.
Beispiel
Im folgenden Beispielprogramm CNTBAR.PRG wird dem Systemmenü ein Menüname hinzugefügt. Das Menü popEnv
wird mit vier Menüeinträgen erstellt. Das Programm stellt neben die aktivierten Elemente ein Häkchen. In einer Schleife wird CNTBAR( ) verwendet, um zu Beginn neben den entsprechenden Menüeinträgen ein Häkchen anzuzeigen.
** 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
Siehe auch
ACTIVATE POPUP | CNTPAD( ) | CREATE MENU | DEFINE BAR | DEFINE POPUP | GETBAR( ) | MRKBAR( ) | ON BAR | ON SELECTION BAR | PRMBAR( )