Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Selektierte Einträge in ListBox löschen! (https://www.delphipraxis.net/31233-selektierte-eintraege-listbox-loeschen.html)

valon 6. Okt 2004 12:04


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:
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;
dann macht er aber probleme und bringt die Fehlermeldung: Der Index der liste überstreitet das maximum
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]

alcaeus 6. Okt 2004 12:06

Re: Selektierte Einträge in ListBox löschen!
 
Hi valon,

du musst die Liste von hinten nach vorne durcharbeiten:

Delphi-Quellcode:
for i := ListBox2.Items.Count-1 downto 0 do
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.

Greetz
alcaeus

[add]Bitte verwende das nächste mal die Delphi-Tags, damit wird der Code ein kleines bisschen lesbarer ;)[/add]

toms 6. Okt 2004 12:06

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;

Dani 6. Okt 2004 12:09

Re: Selektierte Einträge in ListBox löschen!
 
Delphi-Quellcode:
Listbox2.DeleteSelected;
:mrgreen:

toms 6. Okt 2004 12:10

Re: Selektierte Einträge in ListBox löschen!
 
Zitat:

Listbox2.DeleteSelected;
Funktioniert aber nur, wenn nur ein Item markiert ist.

Muetze1 6. Okt 2004 12:10

Re: Selektierte Einträge in ListBox löschen!
 
Moin!

@Dani: ist aber erst ab einschliesslich Delphi 6 verfügbar...

MfG
Muetze1

valon 6. Okt 2004 12:12

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 01:46 Uhr.

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