Hi,
Ich habe schon öfters die TObjectlist benutzt um eine Vielzahl Objekte vom selben Typ zu verwalten, da sie einfach angenehmer als ein Array ist, alleine durch Insert und delete.
Aber, was macht sie wirklich, und wie bediene ich sie richtig?
Ich weiss, das Objekte nur Zeiger auf einen Speicherbereich sind, und man sie deshalb auch nicht ohne weiteres kopieren kann ala objekt1:=objekt2 da dann objekt1 nur auf Objekt2 zeigen würde und eine Änderung in einem der beiden würde daher beides betreffen.
So nun möchte ich gerne eine ganze Menge Objekte in der TObjectlist speichern. Folgendes funktioniert aber beispielsweise nicht.
Delphi-Quellcode:
//Pseudocode
var Objekt: TObjekt;
liste:TObjectlist;
begin
TObjekt:=TObjekt.create('Test1');
liste.add(TObjekt);
TObjekt:=TObjekt.create('Test2');
liste.add(TObject);
end;
In beiden Elementen der Liste würde nun Test2 stehen.
Ist es daher richtig zu sagen, in einer TObjectlist werden nur Zeiger gespeichert? Wenn ja wie befülle ich dann am elegantesten eine TObjectlist mit vielen Elementen in einer einzelnen Prozedur. Wenn ich jedesmal nur ein Objekt reinspeichere funktioniert es, da die lokale temporäre Variable scheinbar bei jedem Aufruf eine andere Speicheradresse hat auf die ich dann über die TObjectlist zugreifen kann.
Aber ich schreibe eigentlich zuviel. Kann mir jemand erklären wie das ganze mit der TObjectlist funktioniert, also wie ich Objekte am besten lade und speichere, oder mir einen link geben wo die funktionsweise und das was dahinter steckt beschrieben wird?
Vielen Dank schonmal