![]() |
Items aus ListBox löschen!
Hallo,
ich würde gerne alle leeren Items aus meiner ListBox löschen, jedoch kann es sein, dass diese zu der Zeit, wo die Prozedur aufgerufen wird, total leer ist. Folgendes habe ich mir überlegt:
Delphi-Quellcode:
Leider bekomme ich eine Meldung: Exception der Klasse EStringListError mit der Meldung 'Listenindex überschreitet das Maximum(16)'.
if ListBox.Count >= 1 then
begin for i := 0 to ListBox.Count do begin if ListBox.Items.Strings[i] = '' then begin ListBox.Items.Delete(i); end; end; end; Woran kann das liegen? Danke :) |
Re: Items aus ListBox löschen!
Beim Löschen, immer von oben, da sonst die Grenze nie erreicht wird, da nach Löschen des ersten, der 2. den Index 0 bekommt. Oder immer den 1. Löschen.
In diesem Fall könntest du auch
Delphi-Quellcode:
aufrufen.
ListBox1.Clear;
|
Re: Items aus ListBox löschen!
2 Sachen:
1. Die Schleife muss rückwärts laufen, also nicht for..to sondern for..downto. Sagen wir mal, die ListBox hat 10 Einträge. Wird jetzt einer gelöscht, sind es nur noch 9, die Schleife läuft trotzdem bis 10 durch. 2. Muss es so heißen:
Delphi-Quellcode:
Da es bei 0 anfängt, ist das letzte Element Count - 1
for i := 0 to ListBox.Count - 1 do
Mfg [Edit] Zitat:
Zitat:
|
Re: Items aus ListBox löschen!
Ich habe es jetzt so gemacht
Delphi-Quellcode:
Leider bekomme ich immernoch die gleiche Fehlermeldung :gruebel:if ListBox.Count >= 1 then begin for i := ListBox.Count downto 0 do begin if ListBox.Items.Strings[i] = '' then begin ListBox.Items.Delete(i); end; end; end; |
Re: Items aus ListBox löschen!
Delphi-Quellcode:
for i := ListBox.Count-1 downto 0 do
|
Re: Items aus ListBox löschen!
Klasse, vielen Dank! :)
|
Re: Items aus ListBox löschen!
Hallo,
für den Eingangstest hast du gar keine Erklärung geliefert.
Delphi-Quellcode:
Getippt und nicht getestet.
procedure DeleteItems(s: TStrings; const item: string = '');
var i: Integer; begin s.BeginUpdate; try for i := Pred(s.Count) downto 0 do if s[i] = item then s.Delete(i); finally s.EndUpdate; end; end; Grüße vom marabu |
Re: Items aus ListBox löschen!
Zitat:
|
Re: Items aus ListBox löschen!
Zitat:
|
Re: Items aus ListBox löschen!
Projekt -> Optionen -> Compiler -> Bereichsprüfung
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 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