@Blup: ja super
besten dank, jetzt funktioniert es
@Christian:
du hast vollkommen recht, die Freigabe der Objekte in diesem Beispiel ist "problematisch", zudem die Objekte in einer ganz anderen stelle, quasi in einer anderen
unit erzeugt werden.
Wenn ich es richtig verstanden habe, hat das setzen der Objectlist auf Nil keinerlei Auswirkungen auf die Existenz der darin abgelegten Objects, da nur die Zeigerposition in der liste gespeichert wird.
allerdings kann ich die objects vor dem auslesen der liste nicht freigeben. ich müsste also eine Art destructor prozedur basteln, die ich nach dem auslesen aufrufe, und welche mir die objects in der objectlist löscht.
oder gibt es eine andere Möglichkeit?
EDIT: leider ist der Rückgabewert von Objectlist.Add noch immer permanent "0"
EDIT:
ich schätze so dürfte es funktionieren die Objects in der Liste und anschließend die Liste selbst auf nil zu setzen:
Delphi-Quellcode:
var
u : TMeinObject;
w : TObjectlist;
.
.
.
begin
for I := 0 to w.Count - 1 do
begin
u :=(W[0]) as TMeinObject;
StringGrid1.Cells[0,i+1] := IntToStr(u.ID);
StringGrid1.Cells[1,i+1] := IntToStr(U.Wert);
StringGrid1.Cells[2,i+1] := U.Content;
w.Delete(0);
end;
end;
w.free;