![]() |
Selektierte Einträge in ListBox löschen!
Hallo !
Brauche mal wieder eure hilfe! Ich möchte in einer ListBox mehrere selektierte Einträge löschen. Ich habe es damit mal versucht,doch es funktioniert nicht richtig.
Delphi-Quellcode:
dann macht er aber probleme und bringt die Fehlermeldung: Der Index der liste überstreitet das maximum
procedure TForm1.BitBtn8Click(Sender: TObject);
var i:Integer; begin for i:=0 to ListBox2.Items.count-1 do if ListBox2.Selected[i]=True then ListBox2.Items.Delete(i); end; Ich weiss wo der Fehler liegt, aber weiss nicht wie ich es anders machen soll. habt ihr ne Idee? [edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit] |
Re: Selektierte Einträge in ListBox löschen!
Hi valon,
du musst die Liste von hinten nach vorne durcharbeiten:
Delphi-Quellcode:
Grund: die for-schleife reagiert nicht auf Änderungen der Count-Eigenschaft, und sobald du mal 2 Elemente entfernst, denkt die Schleife, da wären immer noch gleich viele Elemente wie zuvor.
for i := ListBox2.Items.Count-1 downto 0 do
Greetz alcaeus [add]Bitte verwende das nächste mal die Delphi-Tags, damit wird der Code ein kleines bisschen lesbarer ;)[/add] |
Re: Selektierte Einträge in ListBox löschen!
Delphi-Quellcode:
procedure TForm1.BitBtn8Click(Sender: TObject);
var i: Integer; begin for i := ListBox2.Items.Count - 1 downto do if ListBox2.Selected[i] = True then ListBox2.Items.Delete(i); end; |
Re: Selektierte Einträge in ListBox löschen!
Delphi-Quellcode:
:mrgreen:
Listbox2.DeleteSelected;
|
Re: Selektierte Einträge in ListBox löschen!
Zitat:
|
Re: Selektierte Einträge in ListBox löschen!
Moin!
@Dani: ist aber erst ab einschliesslich Delphi 6 verfügbar... MfG Muetze1 |
Re: Selektierte Einträge in ListBox löschen!
Danke euch , für die schnelle Antwort.
Hat super funktioniert! Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:01 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