Teil 3: Die Auswertung der Menüereignisse

 

 

    If OpenWindow(0,200,200,250,250,"Menü und Toolbar",#PB_Window_SystemMenu)

If CreateGadgetList(WindowID(0))
  TextGadget(1,20,60,210,20,"",#PB_Text_Center|#PB_Text_Border)
  ButtonGadget(2,50,100,150,20,"Programm Ende")
EndIf
If CreateMenu(0, WindowID())
  MenuTitle("Datei")
  MenuItem( 1, "Neu")
  MenuItem( 2, "Laden")
  MenuBar()
  MenuItem( 3, "Speichern")
  MenuTitle("Drucken")
  MenuItem(4,"Drucken")
  MenuTitle("Ende")
  MenuItem(5, "Ende")
EndIf

Repeat
  EventID = WaitWindowEvent()

  If EventID = #PB_Event_CloseWindow 
    Quit = 1
  EndIf
      If EventID = #PB_Event_Menu
    If EventMenu()=1
       SetGadgetText(1,"Neu")
    EndIf
    If EventMenu()=2
      SetGadgetText(1,"Laden")
    EndIf
    If EventMenu()=3
      SetGadgetText(1,"Speichern")
    EndIf
    If EventMenu()=4
      SetGadgetText(1,"Drucken")
    EndIf 
    If EventMenu()=5
     MessageRequester("","Programmende!",0)
       End
    EndIf 
EndIf

  If EventID=#PB_Event_Gadget
    If EventGadget()=2
      Quit=1
    EndIf
  EndIf
Until Quit=1

EndIf
End
 

EventID=#PB_Event_Menu

 

Das Prinzip ist dasselbe wie bei der GadgetAbfrage. In EventID steht ein Wert, der die aktuelle Aktion im Fenster beschreibt. Entspricht dieser Wert der Konstanten #PB_Event_Menu, so liegt ein Ereignis in der Menüzeile vor. In EventMenu() steht nun, welches Menü gedrückt wurde und man kann das zugehörige Ereignis hinzufügen.

In unserem Falle setzen wir für jeden Menüpunkt einen Text in unser TextGadget, im letzten Falle (Menü-Punkt Ende) wird das Programm einfach nach Einblenden eines MessageRequesters beendet.

 

Das Resultat nach Betätigen des Datei-Menüs:

WEITER