Tenía que necesitar una etiqueta con una fuente grande en una forma Delphi y noté que sus curvas aún estaban algo irregulares. Lo comparé con el mismo tamaño y la fuente en MSWord que era mucho más suave. Después de investigar, encontré el código que me permitió suavizar mis fuentes, pero está desordenado y me preguntaba si había una mejor manera de hacerlo con . Buscando en la fuente VCL, TFont parece casado con NONANTIALIASED_QUALITY que es bastante frustrante ...Suavizado de fuente en Delphi
Gracias Bri
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;
¿Funciona así este código (y solo quiere limpiarlo y encontrarlo de alguna manera fácil) o todavía no es lo suficientemente fluido o no funciona? – schnaader
¿Qué parte de este código considera desordenado? –
Parece un desperdicio que tengo que pinchar cada fuente en cada etiqueta cuando el VCL ya lo ha hecho. Busqué algo que pudiera anular o subclase pero sin suerte. Supongo que esta es la única forma de lograr lo que quiero. Bri –