Compartir a través de


ON BAR (Comando)

Activa un menú o una barra de menús cuando se elige un elemento de menú concreto de un menú.

ON BAR nMenuItemNumber OF MenuName1   [ACTIVATE POPUP MenuName2
   | ACTIVATE MENU MenuBarName]

Parámetros

  • nMenuItemNumber OF MenuName1
    Especifica el número de elemento de menú y el menú al que pertenece el elemento de menú que activa otro menú o barra de menús. Cada elemento de un menú puede tener asignado otro menú o barra de menús.

    Una opción de menú que tiene asignado un menú o una barra, tiene una flecha a la derecha del texto de la opción. La flecha indica que eligiendo esta opción se activará un menú o una barra de menús adicional. Si define el menú con DEFINE POPUP ... MARGIN se coloca a la derecha de cada elemento un espacio adicional para la flecha del submenú en cascada. Si crea el menú sin la cláusula MARGIN, puede que la flecha del submenú en cascada sobrescriba el último carácter del elemento de menú.

  • ACTIVATE POPUP MenuName2
    Especifica el nombre del menú que se va a activar cuando se elija el elemento de menú. Use ON BAR sin ACTIVATE POPUP para liberar un menú desde un elemento de menú.

  • ACTIVATE MENU MenuBarName
    Especifica el nombre del menú que se activará al elegir el elemento de menú. Use ON BAR sin ACTIVATE POPUP para liberar un menú de un elemento de menú.

Observaciones

Un menú que muestra y activa otro menú se llama menú en cascada. Utilice ON SELECTION BAR o ON SELECTION POPUP para ejecutar un comando cuando se elige una opción de un menú.

Los menús y la barra de menús se definen con DEFINE POPUP y DEFINE MENU, o son parte del sistema de menús de Visual FoxPro.

Ejemplo

El ejemplo siguiente muestra un sistema de menús en cascada. Se crea una barra de menú llamada mnuDinner con dos títulos de barra de menú. Cada título utiliza ON PAD para activar el menú llamado popMainCourse o popDessert. Cada uno de los menús llamados popMainCourse y popDessert tiene menús adicionales llamados popBurger, popPizza y popPie asignados a sus opciones con tres comandos ON BAR. Las opciones popOlives y popPie tienen menús adicionales asignados con dos comandos ON BAR.

Cuando se hace una selección, ON SELECTION POPUP ALL ejecuta un procedimiento llamado yourchoice que activa una ventana y muestra la opción. La opción se determina con POPUP( ) y PROMPT( ), que devuelve el nombre del menú y el contenido (texto) del elemento de menú.

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

Vea también

ACTIVATE MENU | DEFINE BAR | DEFINE MENU | DEFINE POPUP | ON SELECTION BAR | ON SELECTION POPUP