Seite 1 von 1

ToolBar: BindMenuEvent

Verfasst: 22.07.2016 18:53
von Sicro
Sollte das nicht funktionieren?

Code: Alles auswählen

Procedure ToolBarCallback()
  Debug EventMenu()
EndProcedure

If OpenWindow(0, 0, 0, 150, 25, "ToolBar", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  If CreateToolBar(0, WindowID(0))
    ToolBarStandardButton(0, #PB_ToolBarIcon_New)
    ToolBarStandardButton(1, #PB_ToolBarIcon_Open)
    ToolBarStandardButton(2, #PB_ToolBarIcon_Save)
  EndIf
  BindMenuEvent(0, 0, @ToolBarCallback())
  BindMenuEvent(0, 1, @ToolBarCallback())
  BindMenuEvent(0, 2, @ToolBarCallback())
  Repeat
    Event = WaitWindowEvent()
  Until Event = #PB_Event_CloseWindow 
EndIf
Beim Ausführen erhalte ich die Meldung: "Das definierte #Menu ist nicht initialisiert."

Re: ToolBar: BindMenuEvent

Verfasst: 22.07.2016 19:48
von Rudi
BindMenuEvent() geht wohl nicht mit der Toolbar - nur mit Menu! Es gibt auch keine Alternative.

Re: ToolBar: BindMenuEvent

Verfasst: 22.07.2016 20:05
von edel
Eine Alternative waere vielleicht so:

Code: Alles auswählen

Procedure ToolBarCallback()
  Debug EventMenu()
EndProcedure

If OpenWindow(0, 0, 0, 150, 25, "ToolBar", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  If CreateToolBar(0, WindowID(0))
    ToolBarStandardButton(0, #PB_ToolBarIcon_New)
    ToolBarStandardButton(1, #PB_ToolBarIcon_Open)
    ToolBarStandardButton(2, #PB_ToolBarIcon_Save)
  EndIf
  
  BindEvent(#PB_Event_Menu, @ToolBarCallback(), 0, 0)
  BindEvent(#PB_Event_Menu, @ToolBarCallback(), 0, 1)
  BindEvent(#PB_Event_Menu, @ToolBarCallback(), 0, 2)
  
  Repeat
    Event = WaitWindowEvent()
  Until Event = #PB_Event_CloseWindow 
EndIf

Re: ToolBar: BindMenuEvent

Verfasst: 23.07.2016 12:28
von Sicro
Danke edel, so geht es.

Inzwischen leuchtet mir auch ein, warum das nicht mit BindMenuEvent funktioniert. Die ToolbarButtons erzeugen ja kein Menü-Eintrag, sondern senden nur ihr Event als Menü-Event.