Definir un menú en Visual FoxPro

Tema en 'Foro Libre' iniciado por SoulOfHell, 5 Dic 2008.

  1. Sou

    SoulOfHell
    Expand Collapse
    Sargento

    Mensajes:
    303
    Me Gusta recibidos:
    0
    Definir un menú
    Un menú es una lista de opciones que se mostraran en pantalla de las cuales el usuario puede seleccionar una a su antojo, en fox existen dos tipos de menús asi:
    Menú: Hace referencia al menú que se muestra en una barra, esta puede estar ubicada en la ventana principal o en un formulario de nivel superior


    Menú Contextual: Es una lista de opciones que no se encuentra contenida en una barra, puede aparecer en cualquier lugar de la pantalla


    [​IMG]


    Para definir un menú existen dos formas básicas, la primera haciéndolo por el generador y la segunda mediante código, siendo mucho mas fácil mediante el generador.
    Para crea un menú mediante el generador seleccione la pestaña “Otro” del Administrador de proyectos, luego seleccione “Menús” y pulse el botón “Nuevo”, en la ventana que aparece seleccione el menú el tipo de menú que desea crear


    [​IMG]


    Una vez seleccionado el tipo de menú, aparecera en pantalla una ventana que contiene los siguientes campos:


    [​IMG]


    Indicador: Hace referencia al nombre del menú, se puede usar “\<” para señalar una letra para seleccionar la opción, así por ejemplo \<Salir se vería Salir, si el usuario presiona la “S” (ALT+S según la ubicación) se ejecutara la opción,



    Nota: Utilice \< para resaltar una tecla y \- Para ingresar un linea de división



    Acción: Indica la acción que se realizara al seleccionarlo, estas son :

    • Comando: Ejecuta un comando Ej: WAIT WINDOW ‘PRUEBA’
    • Titúlo de menú: Hace el llamado a un menú propio de Fox Ej. _MSM_FILE
    • Submenú: Su nombre lo dice
    • Procedimiento: Permite almacenar un procedimiento en la definición del menú
    Opciones: Permite personalizar la opción del menú, las mas usadas son:

    • Etiqueta de la tecla: indica que combinación de teclas activa la opción, si por ejemplo presionas la tecla CTRL+S indica que se activara cuando el usuario presione estas teclas al tiempo.
    • Saltar por: Indica la condición por la cual la opción no se activara, así por ejemplo WEXIST("MiForm") indica que la opción no estará disponible si se encuentra activa la ventana de nombre MiForm
    • Mensaje: Se muestra en la barra de estado cuando el usuario se encuentra sobre la opción
    • Imagen: Puede ser una imagen (bmp 16x16 pix) o puede ser la imagen de un recurso, por ejemplo _mfi_open
    [​IMG]

    Una vez se termine de ingresar todas las opciones que se necesitan se procede a generar el menú. Para generar el menú selecciona la opción “Menú” -> “Generar”

    [​IMG]

    El menu se genera a la ruta especificada, en este caso a "C:\munú2.mpr", el archivo contiene el siguiente código:

    SET SYSMENU TO
    SET SYSMENU AUTOMATIC
    DEFINE PAD _1rk0o3ce5 OF _MSYSMENU PROMPT "\<Opciones" COLOR SCHEME 3 ;
    KEY ALT+O, ""
    DEFINE PAD _1rk0o3ce6 OF _MSYSMENU PROMPT "\<Menú Fox" COLOR SCHEME 3 ;
    KEY ALT+M, ""
    ON SELECTION PAD _1rk0o3ce5 OF _MSYSMENU WAIT WINDOW "Prueba"
    ON SELECTION PAD _1rk0o3ce6 OF _MSYSMENU SET SYSMENU TO DEFA

    Para ejecutar el menú utilice la instrucción DO asi:

    DO "c:\menú2.mpr"

    Para hacer referencia a un menú nativ de fox utilice en "Accion" la opcion "Nº de Barra" asi:

    [​IMG]

    [​IMG]

    El ejemplo anterior muestra como hace el llamado a las opciones del menú edición. , lo primero que se hizo fue definir un menu ontextual con las respectivas opciones, luego en un formulario de inserto un EditBox, en el metodo MouseDow se agrego el siguiente codigo:

    [​IMG]

    El código anterior ejecuta el menú "CEDICION.MPR" cuando el usuario presione le boton derecho del mause.

    Agregar un Menú a un formulario
    1. Definimos el menú, según lo necesitemos:


    [​IMG]


    2. Ahora debemos especificar que el menú se mostrara en un formulario de nivel superior, para tal efecto entramos en “Ver” -> “Opciones generales” en el menú principal de Fox


    [​IMG]


    3. Generamos el menú
    4. Creamos un formulario y lo definimos como un formulario de nivel superior (
    Single Document Interface), para eso modificamos la propiedad “ShowWindow” en 2 (Como formulario de nivel superior).



    [​IMG]


    5. Hacemos el llamado al menú que hemos definido desde el método INIT del formulario así:


    DO "pruebas\menú1.mpr" WITH THISFORM,.T.


    En donde “pruebas\menú1.mpr” es la ruta del menú ya generado


    [​IMG]


    Listo!!!,
    Ya agregamos un menú a un formulario de nivel superior, lo cual nos abre un mundo de posibilidades. Como resultado tendremos un formulario asi:


    [​IMG]
     

Compartir esta página