Agregar elementos de menú en tiempo de ejecución
Archivo: ...\Samples\Solution\Menus\Fillmenu.scx
Este ejemplo ilustra la forma de agregar elementos de menú a un menú en tiempo de ejecución.
En este ejemplo, la definición del menú se obtiene en un Diseñador de menús, con un indicador único y un submenú vacío llamado empty_pop
.
El código que se incluye se ejecuta cuando un usuario elige cualquier elemento del menú:
PROCEDURE takeaction(cPrompt)
#DEFINE MSG_LOC "You chose " + cPrompt + "."
IF cPrompt = "Release this menu"
RELEASE PAD dynmenu of _MSYSMENU
ELSE
WAIT WINDOW MSG_LOC TIMEOUT 1
ENDIF
El código asociado al evento Click de cmdRefresh en el formulario ejecuta el menú.
DO dynamic.mpr
Entonces, para cada elemento de la lista, el código define un elemento de menú con el indicador y el texto del mensaje.
FOR i = 1 TO THISFORM.lstMenu.ListCount
DEFINE BAR i OF empty_pop PROMPT (ALLTRIM(THISFORM.lstMenu.List(i,1))) ;
MESSAGE (THISFORM.lstMenu.List(i,2))
ENDFOR
También hay código que proporciona el indicador para permitir al usuario que libere el menú.
DEFINE BAR i + 1 OF empty_pop PROMPT "\-"
DEFINE BAR i + 2 OF empty_pop PROMPT "Release this menu" ;
MESSAGE "Remove the Dynamic Items menu from the menu bar."
Vea también
Coordinar elementos de menú y botones de barra de herramientas | Ejemplos de soluciones