Immer wieder der gleiche Fehler!
Delphi-Programmierer greifen viel zu oft zum Array anstatt eine
Liste zu verwenden.
Aus einer Liste kann man völlig problemlos ein Element entfernen.
Bei einem Array entsteht dagegen ein Loch, dass durch eine Verschiebeoperation gefüllt werden muss.
Bei einer Liste kann man auch völlig problemlos zwischendrin ein Element einfügen.
Eine Liste ist eine höherwertige Datenstruktur, während ein Array eine primitive Datenstruktur ist.
Intern kann man eine Liste auf einem Array aufbauen; für den Verwender der Liste ist dies aber ohne Belang.
Damit sollte klar sein, dass man höherwertige Datenstrukturen benützen sollte.
Im konkreten Fall ist dies die Klasse
TObjectList.
Ausserdem kann man auch die Klasse TStrings (bzw. alle Ableitungen von TStrings) benützen um Objekte zu speichern:
Delphi-Quellcode:
var
kunde : CKunde;
begin
kunde := CKunde.Create;
kunde.display := 'Kunde'+inttostr(lb_auswahl.items.Count+1);
lb_auswahl.items.AddObject(kunde.display, kunde);
end;