Zitat von
MrSpock:
Hallo
DP Gemeinde,
ich habe gerade einmal einen Test gemacht und war über das Ergebnis überrascht, vielleicht deswegen, weil ich bisher etwas falsch verstanden habe?
Ich habe zwei StringListen erzeugt. Anschließend erzeuge ich 1000 Objekte (TLabel) und weise sie mit AddObjects sowohl der StringList1 als auch der StringList2 zu. Anschließend lösche ich alle Objekte der StringList1 in dem ich explizit StringList1.Objects[i].Free für alle i's aufrufe. Wenn ich jetzt auf das Object über Stringlist2 zugreife, funktioniert das ohne Fehler! Ich dachte, dass die Objekte nur als Verweise gespeichert werden. Stimmt das nicht?
Eigentlich ist das zu erwarten, da du ja nur einen Verweis und nicht das Objekt in die StringListe Kopierst.
mit dem StringList1.Objects[i].Free zerstörst du das TLabel Objekt in deinem Fall. Damit zeigt der entsprechende Verweis von Stringlist2 natürlich auf ein nicht mehr existierendes Objekt.