Seite 1 von 2

ButtonImageGadget und DisableGadget und aktives Icon

Verfasst: 10.08.2006 14:25
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

Verfasst: 10.08.2006 15:12
von roherter
Pack das Buttonimagegadget in einen Container disable den Container und wechsel das bild auf dem buttonimagegadget wäre meine lösung :freak: !

Verfasst: 10.08.2006 16:22
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

Verfasst: 10.08.2006 16:32
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]

Verfasst: 10.08.2006 16:40
von Gonzo
hallo #null,
das habe ich wirklich nicht verstanden...
kannst du es mir bitte einfacher erklären?

Verfasst: 10.08.2006 16:44
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.

Verfasst: 10.08.2006 16:52
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

Verfasst: 10.08.2006 16:56
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

Verfasst: 10.08.2006 17:59
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

Verfasst: 11.08.2006 08:17
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