Damit man den Code besser lesen kann, nimm bitte nächstes Mal den DELPHI-Tag (der Römerhelm).
Welcher Fehler kommt denn?
Sonst probier mal folgendes:
Delphi-Quellcode:
procedure loescheAktuellen;
begin
if lb_auswahl.ItemIndex <= high(User) then
begin
User[lb_auswahl.ItemIndex].free;//nicht vergessen das aktuelle Objekt zu löschen (immer mit free)
User[lb_auswahl.ItemIndex] := User[high(User)];
//User[length(User)-1].free; //das letzte Objekt willst du gar nicht löschen, es soll ja an der Stelle des zu löschenden Objektes weiterleben
SetLength(User, Length(User)-1);//hier fehlte die -1
end
else
ShowMessage('Der ItemIndex ist zu groß');
end;
so sollte es funktionieren, aber keine Garantie