ButtonImageGadget und DisableGadget und aktives Icon

Für allgemeine Fragen zur Programmierung mit PureBasic.
Gonzo
Beiträge: 24
Registriert: 24.04.2006 14:24

ButtonImageGadget und DisableGadget und aktives Icon

Beitrag von Gonzo »

Liebe Forum-Gemeinde,
ButtonImageGadgets lassen sich mit DisableGadget aktivieren und deaktivieren. Im aktiven Zustand wird das Icon eines ButtonImageGadgets farbig dargestellt.
Im inaktiven Zustand ist das Icon eines deaktivierten ButtonImageGadgets nicht farbig sondern grau dargestellt.

Ich möchte nun das Icon eines ButtomImagegadgets im deaktivierten Zustand ändern, sodass dieses nicht grau dargestellt wird.
Geht das oder hat jemand eine bessere Lösung, wie man bei deaktivierten ButtonImageGadgets das Icon ändern kann?
Gruss, Gonzo
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

Pack das Buttonimagegadget in einen Container disable den Container und wechsel das bild auf dem buttonimagegadget wäre meine lösung :freak: !
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Gonzo
Beiträge: 24
Registriert: 24.04.2006 14:24

Beitrag von Gonzo »

vielen Dank.
Die einfachsten Lösungen sind die besten.
Nun habe ich eine kleine Herausforderung fur euch.

Das ButtonImageGadget soll jetzt auf dem ToolBar plaziert werden.

Das bedeutet, dass das ButtonImageGadget in das ContainerGadget soll und das ContainerGadget in die ToolBar.
Dies funktioniert bei mir leider nicht.

Code: Alles auswählen

ToolbarHandle = CreateToolBar(#tool,WindowID())
If ToolbarHandle
        ToolBarImageButton(#save, save)
        ToolBarToolTip(#save, "Speichern")

        ContainerGadgetHandle = ContainerGadget(0, 405, 0, 60, 26)
        ButtonImageHandle = ButtonImageGadget(1, 405, 0, 60, 26, Image_false) 

endif
          
    SetParent_(ContainerGadgetHandle, ToolbarHandle)
    SetParent_(ButtonImageHandle, ToolbarHandle)

DisableGadget(0,1)
Das ContainerGadget läßt sich nicht deaktivieren.
Weiß jemand hierfür eine Antwort?
Gruss, Gonzo
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

kannst doch sonst auch einfach das disablen selbst übernehmen
-> eine flag "disabled" setzen -> das bild verändern + und click-ereignisse einfach nicht mehr verarbeiten. [und analog halt wieder enablen]
my pb stuff..
Bild..jedenfalls war das mal so.
Gonzo
Beiträge: 24
Registriert: 24.04.2006 14:24

Beitrag von Gonzo »

hallo #null,
das habe ich wirklich nicht verstanden...
kannst du es mir bitte einfacher erklären?
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Er meint, wenn auf den ImageButton geklickt wurde setzt zu eine Variable auf 1.
Solange diese Variable 1 ist, reagierst du nicht auf klicks auf diesen button. Erst, wenn du ihn selbst wieder aktivierst, setzt du die Variable auf 0. Und solange die Variable 0 ist, reagierst du wieder auf den Button.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Gonzo
Beiträge: 24
Registriert: 24.04.2006 14:24

Beitrag von Gonzo »

vielen Dank. Jetzt habe ich es kappiert.
Nun, vielleicht möchte ich es zu perfekt haben.

Solange der Button inaktiv ist, soll er sich nicht mal DRÜCKEN lassen.

Das läßt sich entsprechend der letzten Idee nicht verwirklichen.
Gruss, Gonzo
Gonzo
Beiträge: 24
Registriert: 24.04.2006 14:24

Beitrag von Gonzo »

nun versuche ich das mit einem simplen code etwas plakativer zu erfragen:

Code: Alles auswählen

  If OpenWindow(0,0,0,322,150,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"ContainerGadget") And CreateGadgetList(WindowID(0)) 
    
    ToolBarHandle = CreateToolBar(0, WindowID())
    
    If ToolBarHandle
      ToolBarStandardButton(0, #PB_ToolBarIcon_New)
      ToolBarStandardButton(1, #PB_ToolBarIcon_Open)
      ToolBarStandardButton(2, #PB_ToolBarIcon_Save)


    
      ContainerGadgetHandle = ContainerGadget (0,100,0,100,24) 
      ButtonGadgetHandle = ButtonGadget(1, 100, 2, 100, 20,"Button 1") 

    EndIf
    
    SetParent_(ButtonGadgetHandle, ToolBarHandle)
    SetParent_(ContainerGadgetHandle, ToolBarHandle)

    
    
    DisableGadget(0,1)
    Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow 
  EndIf

Mein Ziel ist nun, mit DisableGadget(0,1) den ContainerGadget zu deaktivieren. Warum geht das hier nicht?
Gruss, Gonzo
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

so hat die disable-funktion auch wirkung. ich weiß aber nicht wozu die zeile gebraucht wurde :cry:

Code: Alles auswählen

    ;SetParent_(ButtonGadgetHandle, ToolBarHandle)
    SetParent_(ContainerGadgetHandle, ToolBarHandle) 
<edit>vermutlich um toolbar-events für den button abfangen zu können..aber dann gehört der button auch nicht mehr zum Container
my pb stuff..
Bild..jedenfalls war das mal so.
Gonzo
Beiträge: 24
Registriert: 24.04.2006 14:24

Beitrag von Gonzo »

hallo #null,
vielen dank, aber so funktioniert es auch nicht.

über nacht habe ich jedoch eine lösung gefunden.
das buttongadget wird deaktiviert, wenn
disablegadget(0,0) gesetzt wird.


Für disablegadget(0,1) wird es aktiviert.
Super, oder?
gruss, gonzo
Antworten