我有理由在 Delphi 表单上需要一个带有大字体的标签,并注意到它的曲线仍然略微呈锯齿状。我将其与 MSWord 中相同的大小和字体进行了比较,后者更加流畅。经过研究,我发现了可以让我平滑字体的代码,但它很乱,我想知道是否有更好的方法?查看 VCL 源代码,TFont 似乎与 NONANTIALIASED_QUALITY 结合在一起,这相当令人沮丧......
谢谢布里
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;