Einzelnen Beitrag anzeigen

bl4ckb1rd

Registriert seit: 3. Okt 2008
53 Beiträge
 
#1

Array mit Objekte | Element überschreiben

  Alt 23. Jan 2011, 16:11
Hallo Community,

ich habe mehrere Objekte erstellt und diese ín einen dafür geeigneten Array gelegt.

Code:
var
User: array of CKunde;
begin
SetLength(User, Length(User) + 1);
User[High(User)] := CKunde.Create;
User[High(User)].display := 'Kunde'+inttostr(High(User));
lb_auswahl.items.add(User[High(User)].display);  //lb_auswahl = ListBox
end;
Nun möchte ich ein Objekt, welches sich mitten im Array befindet löschen.
Damit der Array natürlich lückenlos bleibt, sollen alle sich danach befindlichen Objekte im Array um eins nach vorne rutschen und zum Schluß wird der Array um eins verringert. Hier stoße ich aber leider auf das Problem, dass ich scheinbar folgendermaßen das Objekt nicht kopieren und löschen kann/darf:

Code:
begin
User[lb_auswahl.ItemIndex] := User[length(User)-1];  //Zu löschendes Objekt einfach testweise mit dem letzen Objekt überschreiben (Fehler?)
User[length(User)-1].Destroy; //letztes Objekt löschen
SetLength(User, Length(User)); //Array jetzt um eins verringern.
end;
  Mit Zitat antworten Zitat