Frage zum ListIconGadget

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Frage zum ListIconGadget

Beitrag 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.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag 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).
Bild
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag 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
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

danke für eure Antworten!
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Antworten