Hola Delphius.
Al tratar con apuntadores es totalmente correcta tu apreciación, como queda claro en este ejemplo:
Código Delphi
[-]
var
f1, f2: TFont;
begin
f1 := TFont.Create;
f2 := TFont.Create;
f2 := f1; f1.Free;
f2.Color := clRed;
Lo correcto sería usar el método
Assign (*), que copia las propiedades a la otra instancia de
TFont.
Pero para el código anterior:
Código Delphi
[-]
Label1.Font := FontBase;
Edit1.Font := FontBase;
Memo1.Font := FontBase;
...
Font , que estos componentes heredan de
TControl, está definida como una propiedad:
Código Delphi
[-]
TControl = class(TComponent)
...
property Font: TFont read FFont write SetFont stored IsFontStored;
...
end;
...
procedure TControl.SetFont(Value: TFont);
begin
FFont.Assign(Value);
end;
por lo que en el caso anterior, no se trataría de una asignación de punteros.
Saludos