Hinzufügen von Menüeinträgen zur Laufzeit
Datei:...\Samples\Solution\Menus\Fillmenu.scx
Dieses Beispiel illustriert das Hinzufügen von Menüeinträgen zu einem Menü zur Laufzeit.
Die Menüdefinition dieses Beispiels ist im Menü-Designer festgelegt und enthält eine Eingabeaufforderung und ein leeres Untermenü namens empty_pop
.
Außerdem ist Code enthalten, der bei Wahl eines Befehls aus dem Menü ausgeführt wird.
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
Der mit dem Click-Ereignis assoziierte Code von cmdRefresh
auf dem Formular führt das Menü aus.
DO dynamic.mpr
Dann definiert der Code für jeden Eintrag der Liste einen Menübefehl mit Eingabeaufforderung und Meldungstext.
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
Darüber hinaus steht Code für die Bereitstellung der Eingabeaufforderung zur Verfügung, die es den Benutzern ermöglicht, das Menü freizugeben.
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."
Siehe auch
Koordinieren von Menübefehlen und Symbolleistenschaltflächen | Lösungsbeispiele