Ich hatte Grund, ein Etikett mit einer großen Schrift in einem Delphi-Formular zu benötigen und bemerkte, dass seine Kurven noch leicht gezackt waren. Ich verglich dies mit der gleichen Größe und Schriftart in MSWord, die viel glatter war. Nach der Recherche fand ich Code , der mir erlaubt, meine Schriften zu glätten, aber es ist chaotisch und ich fragte mich, ob gab es einen besseren Weg? Suchen Sie in der VCL Quelle scheint TFont zu NONANTIALIASED_QUALITY fest gebunden, die ziemlich frustrierend ...Schriftart Glättung in Delphi
Dank Bri
procedure TForm1.SetFontSmoothing(AFont: TFont);
var
tagLOGFONT: TLogFont;
begin
GetObject(
AFont.Handle,
SizeOf(TLogFont),
@tagLOGFONT);
tagLOGFONT.lfQuality := ANTIALIASED_QUALITY;
AFont.Handle := CreateFontIndirect(tagLOGFONT);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
I : integer;
begin
For I :=0 to ComponentCount-1 do
If Components[I] is TLabel then
SetFontSmoothing(TLabel(Components[I]).Font);
end;
So funktioniert dieser Code (und Sie wollen es nur reinigen und finden Sie einen einfachen Weg) oder ist es immer noch nicht glatt genug oder funktioniert nicht? – schnaader
Welchen Teil dieses Codes halten Sie für chaotisch? –
Es scheint verschwenderisch, dass ich jede Schrift auf jedem Etikett stoßen muss, wenn die VCL dies bereits getan hat. Ich suchte nach etwas, das ich außer Kraft setzen oder unterordnen konnte, aber ohne Glück. Ich denke, das ist der einzige Weg, um das zu erreichen, was ich will. Bri –