Delphi-Quellcode:
var
sl: TStringList;
i, i2: Integer;
smallest: String;
begin
sl := TStringList.Create;
i := ListBox1.Items.Count - 1;
Repeat
smallest := ListBox1.Items.Strings[0];
For i2 := 0 to i - 1 do begin
if ListBox1.Items.Strings[i2 + 1] < smallest then
smallest := ListBox1.Items.Strings[i2 + 1];
end;
i := i - 1;
sl.Add(smallest);
Until i = 1;
Du entfernst das Objekt Items aus dem Speicher.
ListBox1.Items.Free;
Und willst hier wieder auf Items zugreifen, das Objekt ist aber von Dir aus dem Speicher entfernt worden.
Delphi-Quellcode:
For i := 0 to sl.Count - 1 do
ListBox1.Items.Add(sl.Strings[i]);
Falls Du Items nur leeren möchtest (also nur den Inhalt):
Delphi-Quellcode:
...
ListBox1.Items.Clear;
...