Seite 1 von 1

Listicon-Checkbox Blendet nicht alle aus!

Verfasst: 20.11.2013 08:46
von Velindos
Hallo Leute,

möchte im ListiconGadget nur die gesetzten Häckchen anzeigen!

Nun Mache das mit Löschen der nicht gesetzten Zeilen, funktioniert aber nicht, muss x-mal den Button drücken!

Code: Alles auswählen

OpenWindow(0,0,0,320,300,"Checkbox Aktiv anzeigen",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0,5,30,310,265,"Name",250)
ButtonGadget(1,5,5,100,20,"CheckBox AN")
ButtonGadget(2,110,5,100,20,"CheckBox AUS")
ButtonGadget(3,215,5,100,20,"List AKTIV")

For i=1 To 80 : AddGadgetItem(0,-1,"Gadget Item #" + Str(i)) : Next

Repeat
  EventID = WaitWindowEvent()
  
  If EventID = #PB_Event_Gadget
    Select EventGadget()
      Case 1
        SendMessage_(GadgetID(0),#LVM_ENSUREVISIBLE,0,0)
        SendMessage_(GadgetID(0),#LVM_SETEXTENDEDLISTVIEWSTYLE,0,#LVS_EX_CHECKBOXES)   
        
      Case 2
        SendMessage_(GadgetID(0),#LVM_ENSUREVISIBLE,0,0)
        SendMessage_(GadgetID(0),#LVM_SETEXTENDEDLISTVIEWSTYLE,0,0)
        
      Case 3 
        ; Zeilen des ListIcon_ZahlenAnzahl
        ListIcon_ZahlenAnzahl = CountGadgetItems(0) - 1      
        Debug ListIcon_ZahlenAnzahl
        ; Von erster bis zur letzten Zeile des Listicons
        For ListZoom_Zeile =  0 To ListIcon_ZahlenAnzahl                                                  
          If GetGadgetItemState(0, ListZoom_Zeile) = 2   ; StatusChecked = Aktiv   
            ; Erfolgt keine Operation
          Else
            ; Dann wird Zeile gelöscht
            RemoveGadgetItem(0, ListZoom_Zeile)
          EndIf
        Next
        
    EndSelect
  EndIf
Until EventID = #PB_Event_CloseWindow
Was mache ich falsch?

Gruss ... Velindos

Re: Listicon-Checkbox Blendet nicht alle aus!

Verfasst: 20.11.2013 09:53
von RSBasic
So?

Code: Alles auswählen

OpenWindow(0,0,0,320,300,"Checkbox Aktiv anzeigen",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0,5,30,310,265,"Name",250)
ButtonGadget(1,5,5,100,20,"CheckBox AN")
ButtonGadget(2,110,5,100,20,"CheckBox AUS")
ButtonGadget(3,215,5,100,20,"List AKTIV")

For i=1 To 80 : AddGadgetItem(0,-1,"Gadget Item #" + Str(i)) : Next

Repeat
  EventID = WaitWindowEvent()
 
  If EventID = #PB_Event_Gadget
    Select EventGadget()
      Case 1
        SendMessage_(GadgetID(0),#LVM_ENSUREVISIBLE,0,0)
        SendMessage_(GadgetID(0),#LVM_SETEXTENDEDLISTVIEWSTYLE,0,#LVS_EX_CHECKBOXES)   
       
      Case 2
        SendMessage_(GadgetID(0),#LVM_ENSUREVISIBLE,0,0)
        SendMessage_(GadgetID(0),#LVM_SETEXTENDEDLISTVIEWSTYLE,0,0)
       
      Case 3
        ListIcon_ZahlenAnzahl = CountGadgetItems(0) - 1  
        For ListZoom_Zeile = ListIcon_ZahlenAnzahl To 0 Step -1
          If GetGadgetItemState(0, ListZoom_Zeile) = 2   ; StatusChecked = Aktiv   
            ; Erfolgt keine Operation
          Else
            ; Dann wird Zeile gelöscht
            RemoveGadgetItem(0, ListZoom_Zeile)
          EndIf
        Next
       
    EndSelect
  EndIf
Until EventID = #PB_Event_CloseWindow

Re: Listicon-Checkbox Blendet nicht alle aus!

Verfasst: 20.11.2013 11:10
von STARGÅTE
Um das mal kurz zu erklären:

Wenn du von 0 nach n läufst, und dann Eintrag 2 löschst, rutsch 3 natürlich auf Position 2.
Wenn du dann in der For-Next-Schleife weiter gehst, bist du dann bei Position 3 (alte 4) hast also 2 (alte 3) übersprungen.

Daher die Verbesserung dich von n nach 0 zu bewegen.

Re: Listicon-Checkbox Blendet nicht alle aus!

Verfasst: 20.11.2013 11:35
von Velindos
Hallo Leute,

Besten Dank für eure Unterstützung das funzt! Einfach vom falsen End begonnen, werde es nächstesmal besser machen!

Gruss ... Velindos