![]() |
Mehrere Listbox Einträge löschen
Hallo
ich habe jetzt dieses:
Delphi-Quellcode:
Wie kann ich das bei Multiselect mit mehreren Einträgen machen ?Listbox1.Items.Delete(Listbox1.ItemIndex); MfG |
Re: Mehrere Listbox Einträge löschen
Delphi-Quellcode:
liefert Dir die Anzahl der markierten Elemente.
ListBox1.SelCount
Einfach eine Schleife programmieren
Delphi-Quellcode:
For i := 0 to ListBox1.SelCount-1 do
|
Re: Mehrere Listbox Einträge löschen
Hi!
ich würde es so machen:
Delphi-Quellcode:
var
i: integer; begin i:= 0; repeat If Listbox1.Selected[i] then Listbox1.Items.Delete(i) else inc(i); until (i = Listbox1.items.count); Gruß Pfoto |
Re: Mehrere Listbox Einträge löschen
Die Codevervollständigung hilft häufig weiter ;)
Delphi-Quellcode:
ListBox1.DeleteSelected;
|
Re: Mehrere Listbox Einträge löschen
@Pfoto: Beim Löschen, von oben anfangen!
|
Re: Mehrere Listbox Einträge löschen
Zitat:
Delphi-Quellcode:
until (i = Listbox1.SelCount-1
|
Re: Mehrere Listbox Einträge löschen
Zitat:
Du bist auf dem falschen Dampfer. Sieh doch mal in der Hilfe nach, was TListBox.Selected[] genau ist. Abgesehen davon müsste die until-Anweisung wie folgt lauten, um nicht auf die Nase zu fallen, wenn der letzte Listeneintrag auch markiert war:
Delphi-Quellcode:
Abgesehen davon sollte man - wie hier schon erwähnt wurde - von oben löschen, also mit dem höchsten Index anfangen und runterzählen. Dann verhindert man zuverlässig die Möglichkeit, dass man sich "den Boden unter den Füßen weglöscht". ;)
until i >= Listbox1.Count;
Abgesehen davon gibt es - wie hier auch schon erwähnt wurde - ein TListBox.DeleteSelected. Abgesehen davon .. ach nö, das reicht nun. :wink: |
Re: Mehrere Listbox Einträge löschen
@Ingo, natürlich hast Du Recht, hätte mir eigentlich auffallen müssen :wall:
Delphi-Quellcode:
Vielleicht können wir uns darauf einigen :lol:
var i: integer;
begin i := Listbox1.Items.Count-1; repeat If Listbox1.Selected[i] then Listbox1.Items.Delete(i); dec(i); until (i < 0); [Edit]
Delphi-Quellcode:
gibt es nicht in allen Delphi Versionen.
TListBox.DeleteSelected
[/Edit] |
Re: Mehrere Listbox Einträge löschen
Was habt ihr denn gegen den armen Pfoto, sein Code ist vollkommen richtig - den einzigen kleinen Fehler habt ihr aber übersehen: EListError bei leeren Items.
Noch weniger zu sagen gibts natürlich gegen Matzes Methode ;) . |
Re: Mehrere Listbox Einträge löschen
Danke für eure Bemühungen. :thumb:
Da
Delphi-Quellcode:
bei mir geht denke ich mal es ist das einfachste.
TListBox.DeleteSelected;
MfG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 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