Seite 1 von 1

Frage zum ListIconGadget

Verfasst: 22.04.2007 04:11
von PureBasic4.0
Hi, Leute

Ich habe ein kleines Prog mit einem ListIconGadget erstellt (Flag Checkboxen). Wie kann ich jetzt abfragen, welche der Checkboxen aktiviert (angeklickt) sind und welche nicht? Es werden mehrere Spalten im ListIconGdg. benutzt.

Verfasst: 22.04.2007 04:29
von Macros
Hilfe hat geschrieben:GetGadgetItemState()
...
- ListIconGadget(): gibt eine Kombination der folgenden Werte zurück:
#PB_ListIcon_Selected : Der 'Eintrag' ist ausgewählt
#PB_ListIcon_Checked : Der 'Eintrag' ist mit einem Häkchen versehen (#PB_ListIcon_CheckBoxes Flag).

Verfasst: 22.04.2007 08:40
von nco2k
nebenbei sei noch angemerkt, dass man:

Code: Alles auswählen

If GetGadgetItemState(#Gadget, Position) & #PB_ListIcon_Checked
schreiben sollte, statt:

Code: Alles auswählen

If GetGadgetItemState(#Gadget, Position) = #PB_ListIcon_Checked
damit checked items korrekt mitgezählt werden, welche sowohl checked als auch selektiert sind (#PB_ListIcon_Checked | #PB_ListIcon_Selected).

Code: Alles auswählen

Procedure CountCheckedItems(Gadget)
  TotalItems = CountGadgetItems(Gadget) - 1
  For CurrentItem = 0 To TotalItems
    If GetGadgetItemState(Gadget, CurrentItem) & #PB_ListIcon_Checked
      Result + 1
    EndIf
  Next
  ProcedureReturn Result
EndProcedure

If OpenWindow(0, 0, 0, 300, 230, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
  ListIconGadget(0, 5, 5, 290, 190, "ABC", 290, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection | #PB_ListIcon_CheckBoxes)
  ButtonGadget(1, 195, 200, 100, 25, "Count")
  
  For ItemNr = 0 To 9
    AddGadgetItem(0, -1, "Item"+Str(ItemNr))
  Next
  
  Repeat
    WinEvent = WaitWindowEvent()
    If WinEvent = #PB_Event_Gadget And EventGadget() = 1
      Debug CountCheckedItems(0)
    EndIf
  Until WinEvent = #PB_Event_CloseWindow
  
EndIf : End
c ya,
nco2k

Verfasst: 22.04.2007 15:50
von PureBasic4.0
danke für eure Antworten!