program project1;
{$DEFINE debug}
uses
fgl,sysutils;
type
Expression = class(TObject)
public
value: integer;
constructor Create(v: integer);
end;
TMyList = specialize TFPGObjectList<Expression>;
var
list: TMyList;
i: integer;
e: Expression;
constructor Expression.Create(v: integer);
begin
self.value := v;
end;
begin
{$IFDEF DEBUG}
if FileExists('heap.trc') then
DeleteFile('heap.trc');
SetHeapTraceOutput('heap.trc');
{$ENDIF DEBUG}
list := TMyList.Create;
for i := 1 to 10 do
begin
list.Add(Expression.Create(i));
end;
for e in list do
begin
writeln(e.value);
end;
list.Free;
{ Expression objects still on the heap? }
readln;
end.