Das Problem sind die Setter:
Delphi-Quellcode:
procedure FAMCard.SetHeader(const Value: FAMPanel);
begin
FHeader := Value;
end;
Hier ist der vorige Inhalt von FHeader immer noch instanziert, wird aber nie mehr freigegeben. (Nie, abgesehen davon, daß bei Programmende der Speicher natürlich schon wieder freigegeben wird)
Alternativ:
Delphi-Quellcode:
procedure FAMCard.SetHeader(const Value: FAMPanel);
begin
FHeader.Free;
FHeader := Value;
end;
oder
Delphi-Quellcode:
procedure FAMCard.SetHeader(const Value: FAMPanel);
begin
FHeader.Assign(Value);
end;