デルファイフォームで大きなフォントのラベルが必要になり、そのカーブがまだ若干ギザギザになっていたことに気付いたのですが、 です。私はこれを同じサイズの と比較し、MSWordのフォントははるかに滑らかでした。研究の後、コード が見つかりました。私のフォントを滑らかにすることができましたが、それは面倒です。 良い方法があるかどうか疑問に思っていましたか? VCLソースで見ると、のTFontはかなりイライラさせられる NONANTIALIASED_QUALITYに固執ようだ...Delphiのフォントスムージング
おかげブリ
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
このコードのどの部分を乱雑に思っていますか? –
VCLがすでにこれを行ったときに、すべてのラベルのすべてのフォントをポックしなければならないのは無駄です。私は何かを見直したり、サブクラス化することができますが運がありません。私はこれが欲しいものを達成する唯一の方法だと思います。 Bri –