Listicon-Checkbox Blendet nicht alle aus!

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Listicon-Checkbox Blendet nicht alle aus!

Beitrag 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
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Listicon-Checkbox Blendet nicht alle aus!

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Listicon-Checkbox Blendet nicht alle aus!

Beitrag 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.
Zuletzt geändert von STARGÅTE am 20.11.2013 12:30, insgesamt 1-mal geändert.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Listicon-Checkbox Blendet nicht alle aus!

Beitrag 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
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Antworten