BAR( )-Funktion

Gibt die Nummer des zuletzt gewählten Befehls eines mit Hilfe von DEFINE POPUP definierten Menüs oder eines Visual FoxPro-Menüs zurück.

BAR( )

Rückgabewerte

Numerisch

Hinweise

Jedem Menübefehl wird mittels DEFINE BAR eine Nummer zugewiesen. Wird ein Befehl eines Menüs ausgewählt, gibt BAR( ) die diesem Befehl zugewiesene Nummer zurück. Basierend auf dem von BAR( ) zurückgegebenen Wert kann ein Programm zu anderen Routinen verzweigen.

Ist kein aktives Menü vorhanden oder haben Benutzer zum Verlassen des Menüs ESC gedrückt, gibt BAR( ) 0 zurück.

Beispiel

Im folgenden Beispiel wird mit Hilfe von BAR( ) die Nummer eines Menübefehls an eine Prozedur übergeben. Zunächst werden mit Hilfe von SET SYSMENU SAVE die aktuelle Systemmenüleiste zwischengespeichert und anschließend mittels SET SYSMENU TO alle Menünamen des Systemmenüs entfernt.

Mittels DEFINE PAD werden nun zwei Menünamen erstellt. Mit Hilfe von DEFINE POPUP werden dann Menüs für die Menünamen erstellt. Die Befehle dieser Menüs werden mit DEFINE BAR erstellt. Wenn Sie einen Menünamen auswählen, aktiviert ON PAD das entsprechende Menü mit Hilfe von ACTIVATE POPUP.

Wenn Sie einen Menübefehl auswählen, übergibt ON SELECTION POPUP mittels BAR( ) und POPUP( ) die Nummer des Menübefehls sowie den Menünamen an die Prozedur choice. Die choice-Prozedur zeigt die Nummer des gewählten Menübefehls sowie den Namen des diesen enthaltenden Menüs an und stellt mittels SET SYSMENU TO DEFAULT das ursprüngliche Visual FoxPro-Systemmenü wieder her.

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

Siehe auch

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