Zitat von
uwewo:
Zitat von
Pfoto:
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
So würde es auch gehen, allerding möchte er ja nicht alle löschen
until (i = Listbox1.SelCount-1
@uwewo
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:
until i >= Listbox1.Count;
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".
Abgesehen davon gibt es - wie hier auch schon erwähnt wurde - ein TListBox.DeleteSelected.
Abgesehen davon .. ach nö, das reicht nun.