Teil 5: Toolbar

 

 

    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(0))
  MenuTitle("Datei")
  MenuItem( 1, "Neu")
  MenuItem( 2, "Laden")
  MenuBar()
  MenuItem( 3, "Speichern")
  MenuTitle("Drucken")
  MenuItem(4,"Drucken")
  MenuTitle("Ende")
  MenuItem(5, "Ende")
EndIf

    If CreateToolBar(0, WindowID(0))
  ToolBarStandardButton(1, #PB_ToolBarIcon_New)
  ToolBarStandardButton(2, #PB_ToolBarIcon_Open)
  ToolBarStandardButton(3, #PB_ToolBarIcon_Save)
  ToolBarSeparator()
  ToolBarStandardButton(4, #PB_ToolBarIcon_Print)
EndIf

    If CreateStatusBar(0,WindowID(0))
  AddStatusBarField(370)
EndIf
Repeat
  EventID = WaitWindowEvent()

  If EventID = #PB_Event_CloseWindow 
    Quit = 1
  EndIf
    If EventID = #PB_Event_Menu
  If EventMenu()=1
    SetGadgetText(1,"Neu")
    StatusBarText(0,0,"Neu !",#PB_StatusBar_Center )
  EndIf
  If EventMenu()=2
    SetGadgetText(1,"Laden")
    StatusBarText(0,0,"Laden !",#PB_StatusBar_Center )
  EndIf
  If EventMenu()=3
    SetGadgetText(1,"Speichern")
    StatusBarText(0,0,"Speichern !",#PB_StatusBar_Center )
  EndIf
  If EventMenu()=4
    SetGadgetText(1,"Drucken")
    StatusBarText(0,0,"Drucken !",#PB_StatusBar_Center )
  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
 

CreateToolbar

 

Genau wie bei einer Gadget-Liste oder der Menüdefinition, muss die Toolbar nach Öffnen des Fenster definiert werden. Als erstes teilen wir mit, dass ein Menü eingetragen werden soll (CreateToolbar), geben diesem Menü eine Identifizierungsnummer (0) und halten fest, dass diese Toolbar im aktuellen Fenster darzustellen ist (WindowID()).

ToolBarStandardButton

Mit diesem Befehl definieren wir ein Icon in der ToolBar. Die Parameter: Nummer, um das Icon bei einem Ereignis zu identifizieren und eine Konstante, die das zugehörige Icon beschreibt. Folgende Icons/Konstanten werden angeboten:

  #PB_ToolBarIcon_New
  #PB_ToolBarIcon_Open
  #PB_ToolBarIcon_Save
  #PB_ToolBarIcon_Print
  #PB_ToolBarIcon_Find
  #PB_ToolBarIcon_Replace

  #PB_ToolBarIcon_Cut
  #PB_ToolBarIcon_Copy
  #PB_ToolBarIcon_Paste
  #PB_ToolBarIcon_Undo
  #PB_ToolBarIcon_Redo

  #PB_ToolBarIcon_Delete
  #PB_ToolBarIcon_Properties
  #PB_ToolBarIcon_Help

Soll ein anderes - vielleicht selbsterstelltes - Icon verwendet werden, wird der Befehl ToolBarImageButton verwendet. Anstatt der Konstanten wird die ImageID des gewünschten Bilder eingetragen. Wer mit ImageID jetzt noch nichts anfangen kann, Image Tutorial ist in Vorbereitung. Der Befehl ToolBarSeperator setzt eine Trennlinie.

Wer das Programm nun startet, wird sich wundern, dass das Drücken von Icons schon ausgewertet wird. Dies liegt daran, dass die Toolbar eigentlich ein erweitertes Menü ist. Das heißt, da die Nummer des ersten Icons gleich der Nummer des ersten Menüpunktes ist (und zwar 1), ist das Resultat der Ausgabe gleich. Soll dies nicht so sein, muss dem Icon eine Nummer zugewiesen werden, die noch nicht in der Menüdefinition gebraucht worden ist.
 

Zum Abschluss: Sichtbar ist hoffentlich die ähnliche Struktur im Umgang mit Gadgets, Icons und Menüs geworden. Die Auswertung erfolgt immer im gleichen Schema: Identifizierung des Ereignisses über die zugehörige PB-Konstante (#PB_EventGadget, #PB_Event_Menu) und der jeweiligen Nummer des Schalter/Menüs/Icons.

Das war es erst mal wieder....

 

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

ENDE