Nur rein interessehalber (ich machs eh anders):
Code: Alles auswählen
if ListBox1.Items.Count>0 then
begin
for i:=ListBox1.Items.Count downto 0 do
begin
if ListBox1.Selected(i) then
ListBox1.Items.Delete;
end;
end;
Rückwärts hab ich nur ein Problem, wenn schon vorher Count=0 ist , aber dass muss ich eh vor jeder Aktion prüfen. Ansonsten passiert doch rückwärts nix. Ich geh ja vom letzten(Count-1) zum ersten und der ist immer 0(wenn was in der Liste drin ist). Das Count immer kleiner wird ist uninteressant, er kann i doch nicht "einholen". So lange ich keine Funktionen in der Scheife hab, die die Stringlist beeinflussen, b.B(blödes Beispiel): Item.Delete(i-2), kann doch nix passieren.