我有理由需要一个德尔福的形式与大字体的标签,并注意到 其曲线仍然有点锯齿状。我比较了这与相同的尺寸 和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;
所以这个代码的工作(你只是想清理它并找到一些简单的方法),还是不够流畅或不工作? – schnaader 2009-05-28 14:58:24
你认为这段代码的哪一部分是凌乱的? – 2009-05-28 21:52:57
当VCL已经完成这件事时,我必须在每个标签上戳出每一个字体,这似乎很浪费。我寻找我可以重写或继承的东西,但没有运气。我想这是实现我想要的唯一途径。 Bri – 2009-08-11 15:25:46