Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi CheckListBox - mehrere Einträge löschen (https://www.delphipraxis.net/31969-checklistbox-mehrere-eintraege-loeschen.html)

HaCkAttaCk2001 16. Okt 2004 13:17


CheckListBox - mehrere Einträge löschen
 
Hi @ all.

Ich versuch gerade, mehrere Einträge auf einmal aus einer CheckListBox zu löschen. Aber es klappt nicht, weil ich immer eine Meldung bekomme, der Listenindex überschreite das Maximum. Ich habe nun aber eigentlich schon dafür gesorgt, dass das nicht passieren dürfte, indem ich von der aktuellen Anzahl an Einträgen die Anzahl der zu löschenden nicht-angehakten Items abziehe (die ja dann praktisch im nächsten Durchlauf fehlen).

Delphi-Quellcode:
  for i := 0 to CheckListBox1.Items.Count do
  begin
    if CheckListBox1.State[i] = cbUnchecked then UnCheckedItems := UnCheckedItems + 1;
  end;

  for i := 0 to CheckListBox1.Items.Count-UnCheckedItems do
  begin
    if CheckListBox1.State[i] = cbUnchecked then CheckListBox1.Items.Delete(i);
  end;
Wieso bekomme ich immer noch diese Fehlermeldung?


C ya.

Gruber_Hans_12345 16. Okt 2004 13:25

Re: CheckListBox - mehrere Einträge löschen
 
da, wenn du den Wert mit Index 0 löscht, der Count nicht aktualisiert wird

am besten einfach
Delphi-Quellcode:
  i := 0;
  while i < CheckListBox1.Items.Count do
    if CheckListBox1.State[i] = cbUnchecked then CheckListBox1.Items.Delete(i)
    else inc(i);

[edit]
ups, das mit dem Index von oben ist flasch ... da hast du nur bis Count gezählt, darfst aber nur bis Count-1 zählen !

Aber kannst ja auch einfach die while Schleife verwenden !
[/edit]

HaCkAttaCk2001 16. Okt 2004 16:13

Re: CheckListBox - mehrere Einträge löschen
 
Hi.

Boah das funzt ja wie geschmiert :mrgreen: . Ich glaub ich muss mal einen für die DPler ausgeben. Was ihr mir schon so geholfen habt :D .


C ya! :dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz