У меня была причина, по которой мне понадобилась метка с крупным шрифтом на форме 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;