Freigeben über


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