Seite 1 von 1

Problem mit SetGadgetItemState()

Verfasst: 07.11.2007 23:44
von MightyMAC
Hallo,

ich habe da so ein kleines Problemchen mit SetGadgetItemState() in Verbindung mit einem ListIconGadget. Und zwar bekomme ich es nicht hin, ein Häkchen, das in einer Check-Box ist (#PB_ListIcon_CheckBoxes), per SetGadgetItemState() wegzumachen (also quasi un-checken).

Ich habe gelesen, daß mit SetGadgetItemState(#ListIcon, Eintrag, 0) Selektierung und Häkchen eines Eintrags entfernt werden können, aber es funktioniert nicht.
Ich benutze folgenden Code, der zu einem Pop-Up-Menüs gehört:

Code: Alles auswählen

  If Event = #PB_Event_Menu
       Select EventMenu()
        Case #Menu1 ; zum Prüfen markieren
          For Eintrag=0 To CountGadgetItems(#ListIcon_Klingelliste)-1
            If GetGadgetItemState(#ListIcon_Klingelliste, Eintrag)=#PB_ListIcon_Selected
                 SetGadgetItemState(#ListIcon_Klingelliste,Eintrag,#PB_ListIcon_Checked | #PB_ListIcon_Selected)
            EndIf
          Next

        Case #Menu2 ; alle zum Prüfen markieren
          For Eintrag=0 To CountGadgetItems(#ListIcon_Klingelliste)-1
            SetGadgetItemState(#ListIcon_Klingelliste,Eintrag,#PB_ListIcon_Checked)
          Next

        Case #Menu3 ; als nicht zu Prüfen markieren
          For Eintrag=0 To CountGadgetItems(#ListIcon_Klingelliste)-1
            If GetGadgetItemState(#ListIcon_Klingelliste, Eintrag)=#PB_ListIcon_Selected
                 SetGadgetItemState(#ListIcon_Klingelliste,Eintrag,0)
            EndIf
          Next
       EndSelect
Die ersten beiden Menüeinträge klappen (Auswahl mit Haken versehen, alle mit Haken versehen), aber der dritte, der die Haken der Auswahl entfernen soll macht gar nichts.

Hat eventuell jemand einen Tipp?

Danke schon mal
Mac

Verfasst: 08.11.2007 00:02
von STARGÅTE
es geht deswegen nicht :
PureBasic-Code hat geschrieben:
If GetGadgetItemState(#ListIcon_Klingelliste, Eintrag) = #PB_ListIcon_Selected
  SetGadgetItemState(#ListIcon_Klingelliste,Eintrag,0)
EndIf
Denn wenn es abgehakt ist muss du ja das berücksichtigen:
PureBasic-Code hat geschrieben: If GetGadgetItemState(#ListIcon_Klingelliste, Eintrag) = #PB_ListIcon_Selected | #PB_ListIcon_Checked 
  SetGadgetItemState(#ListIcon_Klingelliste,Eintrag,0) 
EndIf 

Verfasst: 08.11.2007 00:18
von MightyMAC
*vor die Stirn schlagend* Na klar! Manchmal ist man aber auch wie vernagelt. Jetzt funktioniert's. Danke für die schnelle Hilfe.

Mac

Re: Problem mit SetGadgetItemState()

Verfasst: 08.11.2007 01:08
von Deeem2031
So würde es auch gehen, was im Zusammenhang von Flags auch besser ist, da alle anderen Flags, die eventuell gesetzt sind, ignoriert werden.

Code: Alles auswählen

If GetGadgetItemState(#ListIcon_Klingelliste, Eintrag) & #PB_ListIcon_Selected
  SetGadgetItemState(#ListIcon_Klingelliste,Eintrag,0)
EndIf

Verfasst: 08.11.2007 01:25
von STARGÅTE
jo da hast du recht, aber dann ist das hier noch etwas besser, damit die anderen Flags nicht verloren gehen :
PureBasic-Code hat geschrieben: If GetGadgetItemState(#ListIcon_Klingelliste, Eintrag) & #PB_ListIcon_Selected 
  SetGadgetItemState(#ListIcon_Klingelliste, Eintrag, GetGadgetItemState(#ListIcon_Klingelliste, Eintrag)-#PB_ListIcon_Checked
EndIf