![]() |
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:
Wieso bekomme ich immer noch diese Fehlermeldung?
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; C ya. |
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] |
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