La propiedad Screen.Fonts
se completa a través del EnumFontFamiliesEx
API function. Busque en Forms.pas un ejemplo de cómo llamar a esa función.
La función de devolución de llamada que llama recibirá un registro TNewTextMetricEx
, y uno de los miembros de ese registro es un TFontSignature
. El campo fsUsb
indica qué Unicode suborganiza los reclamos de fuentes para admitir.
El sistema en realidad no tiene "fuentes Unicode". Incluso las fuentes que tienen la palabra Unicode en sus nombres no tienen glifos para todos caracteres Unicode. Puede distinguir entre mapa de bits, impresora y fuentes TrueType, pero más allá de eso, lo mejor que puede hacer es averiguar si la fuente que está considerando admite los caracteres que desea. Y si la fuente no es lo que consideraría una "fuente Unicode", pero admite todos los caracteres que necesita, entonces ¿qué diferencia tiene? Para obtener esta información, puede estar interesado en GetFontUnicodeRanges
.
La tecnología de Microsoft para mostrar texto con fuentes diferentes según qué fuentes contienen qué caracteres es Uniscribe, particularmente font fallback. No conozco ningún soporte de Delphi para Uniscribe; Empecé a escribir un conjunto de unidades de importación una vez, pero mis intereses son inconstantes, y pasé a otra cosa antes de completarla. Michael Kaplan's blog habla de Uniscribe a veces, por lo que es otro lugar para buscar.