Zitat von
oki:
Nutze ich die hauseigene Property Font des TCustomControl, so wirkt sich das nicht auf den Canvas.Font aus und die SetFont-Procedure von TControl ist private und statisch. Somit kann ich auf die Änderung der Font-Eigenschaften nicht mit einer Übernahme und neuzeichnen in meiner Compo reagieren.
Bei einer Font-Änderung wird doch automatisch die Message CM_FONTCHANGED ausgelöst und dies bewirkt das Neuzeichnen:
Delphi-Quellcode:
procedure TControl.CMFontChanged(var Message: TMessage);
begin
Invalidate;
end;
Du musst nur darauf achten, den Font an den Canvas weiterzureichen:
Delphi-Quellcode:
procedure Txxxx.Paint;
begin
Canvas.Font.Assign(self.Font);
// und hier dein Zeichengedöhns
end;