Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by choose,
23. Dez 2003
Irgendwo muss FFont mit einem Objekt "belegt" werden. Das sollte, wie bei Objekten, die aus anderen Objekten zusammengesetzt (aggregiert) sind, innerhalb des Konstruktors geschehe. zB so:
constructor TMyClass.Create;
begin
inherited;
FFont:= TFont.Create;
//.. some more initialization code
end;
Das Exemplar sollte dann spätestens im Destruktor wieder freigegeben werden
destructor...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by choose,
23. Dez 2003
Wenn Du das direkte Beschreiben einer Exemplarvariablen zulässt, ist die Referenz auf das zuvor erzeugte Exemplar verloren. Darüber hinaus ist nicht klar, wo das zugewisene Exemplar letztlich wann freigegeben wird:
myFont:= TFont.Create;
try
AnObject.Font:= myFont;
AnotherObject.Font:= myFont;
finally
FreeAndNil(myFont);
end;
Verwende stattdessen eine transparente Zuweisung der...