Seite 1 von 1

ToolBar Image ändern

Verfasst: 28.08.2013 19:09
von IronEagle
Hallo Leute,

gibt es eine einfache Möglichkeit, dass Image eines "ToolBarImageButton" zur Laufzeit zu ändern ohne das ich den Button freigeben und neu erstellen muss ?

Ich hoffe ihr könnt mir weiterhelfen :)

Re: ToolBar Image ändern

Verfasst: 28.08.2013 19:31
von ts-soft
Nativ ist es wie mit Menüs, Toolbar freigeben und Neu erstellen.
Sollte aber kein Problem sein und fällt auch normalerweise nicht auf.

Re: ToolBar Image ändern

Verfasst: 28.08.2013 19:36
von IronEagle
ts-soft hat geschrieben:Nativ ist es wie mit Menüs, Toolbar freigeben und Neu erstellen.
Sollte aber kein Problem sein und fällt auch normalerweise nicht auf.
Erstmal vielen Dank für die schnelle Antwort :allright:

Ist das dann jetzt eine gängige Methode oder eher eine "Von hinten durch die Brust ins Auge" Sache? :D

Re: ToolBar Image ändern

Verfasst: 28.08.2013 19:37
von RSBasic
Oder natürlich mit Hilfe von WinAPI:

Code: Alles auswählen

EnableExplicit

Define EventID

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  If CreateToolBar(1, WindowID(0))
    ToolBarStandardButton(0, #PB_ToolBarIcon_New)
    ToolBarStandardButton(1, #PB_ToolBarIcon_Open)
    ToolBarStandardButton(2, #PB_ToolBarIcon_Save)
  EndIf
  
  ButtonGadget(1, 10, 30, 200, 20, "Bild eines ToolBar-Items ändern", 0)
  
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget
      Select EventGadget()
        Case 1
          SendMessage_(ToolBarID(1), #TB_CHANGEBITMAP, 2, 5)
      EndSelect
    EndIf
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf

Re: ToolBar Image ändern

Verfasst: 28.08.2013 19:41
von ts-soft
IronEagle hat geschrieben:Ist das dann jetzt eine gängige Methode oder eher eine "Von hinten durch die Brust ins Auge" Sache? :D
Hab ich bisher immer so gehandhabt und kann da auch keinen Unterschied erkennen, ob die ganze Toolbar oder nur ein
Button neugezeichnet wird. Bei Extremen Toolbars mags wohl nicht stimmen, aber die sind sowieso nur per API zu
erstellen.

Re: ToolBar Image ändern

Verfasst: 28.08.2013 19:45
von IronEagle

Code: Alles auswählen

SendMessage_(ToolBarID(1), #TB_CHANGEBITMAP, 2, 5)
Wäre es bei diesem API-Befehl auch möglich, ein mit "CatchImage" geladenes Icon zu verwenden.

Habe gerade mal probiert als lParam meine ImageID zu verwenden... Leider ohne Erfolg :cry:

Re: ToolBar Image ändern

Verfasst: 28.08.2013 20:08
von ts-soft
Dafür mußt Du eine ImageList erstellen. Wenn Du diese aber der PB Toolbar zuweist, wirst Du die Images nicht
mehr freigeben können, also Speicherleak.
Hilft also nur eine komplett per API erstellte Toolbar, gibts wohl auch Beispiele im engl. Forum.

Viel Aufwand für nichts :mrgreen:

Ansonsten hier mal schauen: http://msdn.microsoft.com/en-us/library ... 85%29.aspx

oder einen Container mit flachen Buttons, siehe: http://www.purebasic.fr/english/viewtop ... 35#p405635
das wäre wieder Crossplattform.