Delphi-Quellcode:
for i := 0 to ListBoxFtp.Items.Count -1 do
begin
s := ListBoxFtp.Items[i];
IdFTP.Put((Form1.EditTempStore.Text) + s, s);
ListBoxFtp.Items[i] := '';
ListBoxFtp.clear;
end;
Annahme 3 Items sind in der Listbox. Bei einer for-Schleife wird vor dem Schleifendurchlauf festglegt, wie oft sie durchlaufen wird. Hier also dreimal. Ok, was passiert jetzt? Er geht die Schleife zum ersten mal durch. Alles klar geht. Nur am Ende der Schleife leerst du die Listbox, so dass er beim zweiten und dritten mal auf nicht vorhandene Items der Listbox zugreifen will. Und das macht er natürlich nicht mit. Ergo, lösch den Inhalt der Listbox einfach nicht.