ON BAR-Befehl
Gibt ein Menü bzw. eine Menüleiste an, das bzw. die aktiviert wird, wenn Sie einen bestimmten Menüeintrag aus einem Menü wählen.
ON BAR nMenuItemNumber OF MenuName1 [ACTIVATE POPUP MenuName2
| ACTIVATE MENU MenuBarName]
Parameter
nMenuItemNumber OF MenuName1
Gibt die Nummer und das Menü des Menüeintrags an, der ein anderes Menü oder eine andere Menüleiste aktiviert. Jedem Menüeintrag kann ein anderes Menü oder eine andere Menüleiste zugewiesen werden.Wenn einem Menüeintrag ein Menü oder eine Menüleiste zugewiesen wurde, wird das durch einen Pfeil angezeigt, der sich rechts von dem Menüeintrag befindet. Der Pfeil zeigt an, dass bei der Auswahl dieses Menüeintrags ein weiteres Menü oder eine weitere Menüleiste aktiviert wird. Rechts von jedem Element ist zusätzlicher Platz für den Pfeil des überlappenden Untermenüs vorgesehen, wenn Sie das Menü mit DEFINE****POPUP( )…MARGIN( ) definieren. Wenn Sie das Menü ohne die MARGIN-Klausel definieren, kann es vorkommen, dass der Pfeil des überlappenden Untermenüs das letzte Zeichen des Menüeintrags überschreibt.
ACTIVATE POPUP MenuName2
Gibt den Namen des zu aktivierenden Menüs an, wenn der Menüeintrag gewählt wird. Verwenden Sie ON BAR ohne ACTIVATE****POPUP, um die Zuordnung eines Menüs zu einem Menüeintrag aufzuheben.ACTIVATE****MENU MenuBarName
Gibt den Namen der zu aktivierenden Menüleiste an, wenn der Menüeintrag gewählt ist. Verwenden Sie ON BAR ohne ACTIVATE MENU, um die Zuordnung einer Menüleiste zu einem Menüeintrag aufzuheben.
Hinweise
Ein Menü, das ein anderes Menü anzeigt und aktiviert, wird als überlappendes Untermenü bezeichnet. Verwenden Sie ON SELECTION BAR oder ON SELECTION POPUP, um einen Befehl auszuführen, wenn ein Element aus einem Menü gewählt wurde.
Die Menüs und die Menüleiste können benutzerdefiniert (mit DEFINE POPUP und DEFINE MENU erstellt) oder ein Teil des Visual FoxPro-Menüsystems sein.
Beispiel
Im folgenden Beispiel wird ein System überlappender Untermenüs dargestellt. Eine Menüleiste mit dem Namen mnuDinner
wird mit zwei Menüleistennamen erstellt. Jeder Name verwendet ON PAD, um das Menü mit dem Namen popMainCourse
oder popDessert
zu erstellen. Die Menüs popMainCourse
und popDessert
enthalten jeweils zusätzliche Menüs mit den Namen popBurger
, popPizza
und popPie
. Diese Menüs werden der Elementliste mit drei ON BAR-Befehlen zugewiesen. Die Elemente popOlives
und popPie
haben zusätzliche Menüs, die mit zwei ON BAR-Befehlen zugewiesen werden.
Wenn Sie ein Menü auswählen, führt ON SELECTION POPUP ALL eine Prozedur mit dem Namen yourchoice
aus. Die Prozedur aktiviert ein Fenster und zeigt Ihre Wahl an. Die Auswahl wird mit POPUP( ) und PROMPT( ) festgelegt, die den Menünamen und den Inhalt (Text) des Menüeintrags zurückgeben.
DEFINE WINDOW wOrder FROM 10,0 TO 13,39
DEFINE MENU mnuDinner
DEFINE PAD padOne OF mnuDinner PROMPT '\<Main Course' KEY ALT+M, ''
DEFINE PAD padTwo OF mnuDinner PROMPT '\<Dessert' KEY ALT+D, ''
ON PAD padOne OF mnuDinner ACTIVATE POPUP popMainCourse
ON PAD padTwo OF mnuDinner ACTIVATE POPUP dessert
DEFINE POPUP popMainCourse MARGIN MESSAGE ;
'We have burgers and pizza today'
DEFINE BAR 1 OF popMainCourse PROMPT '\<Hamburgers'
DEFINE BAR 2 OF popMainCourse PROMPT '\<Pizza'
ON BAR 1 OF popMainCourse ACTIVATE POPUP burger
ON BAR 2 OF popMainCourse ACTIVATE POPUP pizza
DEFINE POPUP burger MARGIN MESSAGE ;
'What would you like on your burger?'
DEFINE BAR 1 OF burger PROMPT '\<Ketchup'
DEFINE BAR 2 OF burger PROMPT '\<Mustard'
DEFINE BAR 3 OF burger PROMPT '\<Onions'
DEFINE BAR 4 OF burger PROMPT '\<Pickles'
DEFINE POPUP pizza MARGIN MESSAGE ;
'Here are the available toppings'
DEFINE BAR 1 OF pizza PROMPT '\<Anchovies'
DEFINE BAR 2 OF pizza PROMPT '\<Green Peppers'
DEFINE BAR 3 OF pizza PROMPT '\<Olives'
DEFINE BAR 4 OF pizza PROMPT '\<Pepperoni'
ON BAR 3 OF pizza ACTIVATE POPUP olives
DEFINE POPUP olives MARGIN
DEFINE BAR 1 OF olives PROMPT '\<Black' MESSAGE 'Black olives?'
DEFINE BAR 2 OF olives PROMPT '\<Green' MESSAGE 'Green olives?'
DEFINE POPUP dessert MARGIN MESSAGE 'Our dessert offerings'
DEFINE BAR 1 OF dessert PROMPT '\<Brownies'
DEFINE BAR 2 OF dessert PROMPT '\<Cookies'
DEFINE BAR 3 OF dessert PROMPT '\<Ice Cream'
DEFINE BAR 4 OF dessert PROMPT '\<Pie'
ON BAR 4 OF dessert ACTIVATE POPUP pie
DEFINE POPUP pie MARGIN MESSAGE 'What kind of pie?'
DEFINE BAR 1 OF pie PROMPT '\<Blueberry'
DEFINE BAR 2 OF pie PROMPT '\<Cherry'
DEFINE BAR 3 OF pie PROMPT '\<Peach'
DEFINE BAR 4 OF pie PROMPT '\<Rhubarb'
ON SELECTION POPUP ALL DO yourchoice
ACTIVATE MENU mnuDinner
PROCEDURE yourchoice
ACTIVATE WINDOW wOrder
CLEAR
DO CASE
CASE POPUP( ) = 'BURGER'
@ 0,0 SAY 'A ' + POPUP( ) + ' order:'
@ 1,0 SAY 'You ordered a burger with ' + LOWER(PROMPT( ))
CASE POPUP( ) = 'PIZZA'
@ 0,0 SAY 'A ' + POPUP( ) + ' order:'
@ 1,0 SAY 'You ordered a pizza with ' + LOWER(PROMPT( ))
CASE POPUP( ) = 'OLIVES'
@ 0,0 SAY 'A ' + POPUP( ) + ' order:'
@ 1,0 SAY 'You ordered a pizza with ' ;
+ LOWER(PROMPT( )) + ' olives'
CASE POPUP( ) = 'DESSERT'
@ 0,0 SAY 'A ' + POPUP( ) + ' order:'
@ 1,0 SAY 'You ordered ' + LOWER(PROMPT( )) + ' for dessert'
CASE POPUP( ) = 'PIE'
@ 0,0 SAY 'A ' + POPUP( ) + ' order:'
@ 1,0 SAY 'You ordered ' + LOWER(PROMPT( )) + ' pie'
ENDCASE
WAIT WINDOW
DEACTIVATE WINDOW wOrder
RETURN
Siehe auch
ACTIVATE MENU | DEFINE BAR | DEFINE MENU | DEFINE POPUP | ON SELECTION BAR | ON SELECTION POPUP