Om het font van een hint venster aan te passen, moeten we helaas een nieuwe class maken die de hints afhandelt - er is een geen eenvoudige instelling hiervoor. Dat klinkt natuurlijk moeilijk, maar dat is het gelukkig niet omdat we het meeste van de oorspronkelijke class kunnen overerven. (bron)
Het veranderen van een font kan handig zijn als je de hint vensters wilt aanpassen aan de style van jouw programma, of bijvoorbeeld als je een font wilt gebruiken met een vaste breedte (b.v. Courier of Monaco) als je tekst in een hint wilt uitlijnen.
Voorbeeld code (wel even de caption en de hint voor label1 invullen en ShowHint op TRUE zetten):
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TExtendedHint = class(THintWindow)
constructor Create(AOwner: TComponent); override;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
constructor TExtendedHint.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
with Canvas.Font do
begin
Name := 'Courier New';
Size := 13;
Style := [fsBold, fsItalic]; // just an example
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
HintWindowClass := TExtendedHint;
end;
end.