Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: TCustomControl.Canvas.Font aus TCustomControl.Font übern

  Alt 13. Aug 2007, 17:46
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;
Andreas
  Mit Zitat antworten Zitat