Saltar al contenido principal
Versión: 20 R7 BETA

Menu selected

Menu selected {( subMenu )} -> Resultado

ParámetroTipoDescripción
subMenuTextReferencia del menú que contiene la línea seleccionada
ResultadoIntegerComando de menú seleccionado Palabra superior: Número de menú Palabra inferior: Número de comando de menú

Este comando no es hilo seguro, no puede ser utilizado en código apropiativo.

Descripción

Menu selected se utiliza sólo cuando se muestran formularios. Esta función detecta el comando de menú elegido en un menú y en el caso de un submenú jerárquico, devuelve la referencia del submenú.

Consejo: siempre que sea posible, utilice métodos asociados con comandos de menú en una barra asociada (con un número de barra negativo) en lugar de utilizar Menu selected. Las barras de menús asociadas son más fáciles de administrar, ya que no es necesario probar su selección. Sin embargo, si utiliza los comandos APPEND MENU ITEM o INSERT MENU ITEM, debe utilizar Menu selected porque las líneas de menús añadidas por estos comandos no tienen métodos asociados.

El comando Menu selected puede utilizarse para trabajar con submenús jerárquicos. Cuando se selecciona una línea de un menú jerárquico más allá del primer nivel, el comando devuelve, en el parámetro opcional submenú, la referencia (tipo MenuRef, cadena de 16 caracteres) del submenú al cual pertenece la línea seleccionada. Si el comando de menú no contiene un submenú jerárquico, este parámetro recibe una cadena vacía.

Menu selected devuelve el número del menú seleccionado, un entero largo. Para encontrar el número de menú, divida Menu selected por 65,536 y convierta el resultado en un entero. Para obtener el número del comando de menú, calcule el módulo de Menu selected con el coeficiente 65,536. Utilice las siguientes fórmulas para calcular el número de menú y del comando de menú:

 Menu:=Menu selected\ 65536
 comando de menu:=Menu selected% 65536

Igualmente puede extraer estos valores utilizando los Operadores bitwise como en el siguiente ejemplo:

 Menu:=(Menu selected & 0xFFFF0000)>>16
 comando de menu:=Menu selected & 0xFFFF

Si ningún comando de menú está seleccionado, Menu selected devuelve 0.

Ejemplo

El siguiente método de formulario utiliza Menu selected para proporcionar los argumentos menú y línea de menú a SET MENU ITEM MARK:

 Case of
    :(FORM Event=On Menu Selected)
       C_STRING(16;$MenuRefIncludingItem)
       var $ref;$MenuNum;$MenuItemNum : Integer
       $ref:=Menu selected($MenuRefIncludingItem)
       $MenuNum:=$ref\65536
       $MenuItemNum:=$ref%65536
       SET MENU ITEM MARK(MenuRefIncludingItem;$MenuItemNum;Char(18))
 End case

Nota: el evento de formulario On Menu Selected no es activado si ninguna línea está seleccionada, $MenuRefIncludingItem siempre es dado y $MenuNum vale 0 si el menú no es uno de los menús de la barra.

Ver también

Gestión de menús