【发布时间】:2010-10-29 14:32:58
【问题描述】:
我有理由在 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;
【问题讨论】:
-
那么这段代码是否有效(你只是想清理它并找到一些简单的方法)还是它仍然不够流畅或不起作用?
-
您认为这段代码的哪一部分混乱?
-
当 VCL 已经完成此操作时,我必须戳每个标签上的每个字体,这似乎很浪费。我寻找可以覆盖或子类但没有运气的东西。我想这是实现我想要的唯一方法。布里
标签: delphi fonts truetype smoothing