srod, first of all thank you for your solution
But what to do if checkbox was checked from the beginning?





some time later




Code: Select all
If OpenWindow(0, 0, 0, 640, 300, "ListIconGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TextGadget (7, 10, 105, 300, 20, "ListIcon with Checkbox", #PB_Text_Center)
ListIconGadget(1, 10, 120, 340, 80, "Column 1", 100, #PB_ListIcon_CheckBoxes) ; ListIcon with checkboxs
For b = 2 To 4
AddGadgetColumn(1, b, "Column " + Str(b), 65)
Next
For b = 0 To 2
AddGadgetItem(1, b, "Item 1"+Chr(10)+"Item 2"+Chr(10)+"Item 3"+Chr(10)+"Item 4")
Next
SetGadgetItemState(1,0,#PB_ListIcon_Checked) ;Check Item
;Get Checked Item
lsItems = CountGadgetItems(1)
For lastChecked = lsItems - 1 To 0 Step -1
ChkResult = GetGadgetItemState(1, lastChecked)
If ChkResult & #PB_ListIcon_Checked
Break
EndIf
Next
Repeat
eventID = WaitWindowEvent()
Select eventID
Case #PB_Event_Gadget
If EventType() = #PB_EventType_Change
numItems = CountGadgetItems(1)
countChecks = 0
For i = 0 To numItems-1
state = GetGadgetItemState(1, i)
If state & #PB_ListIcon_Checked
countChecks+1
If i <> lastChecked
If lastChecked <> -1
SetGadgetItemState(1, lastChecked, GetGadgetItemState(1, lastChecked) ! #PB_ListIcon_Checked)
EndIf
lastChecked = i
Break
EndIf
EndIf
Next
If countChecks = 0
lastChecked = -1
EndIf
EndIf
EndSelect
Until eventID = #PB_Event_CloseWindow
EndIf