Как выяснить установлены ли в системе шрифты TrueType
Решили инженеры выполнить мечту Билла Гейтса - поставили "Винды"
на холодильник. Запустили - работает.
Поставили внутрь кастрюлю борща. Глядь - сообщение:
- Обнаружено новое устройство "Кастрюля (4 л) красная".
Будем устанавливать?
function IsTrueTypeInstalled: bool;
var{$IFDEF WIN32}
rs : TRasterizerStatus;
{$ELSE}
rs : TRasterizer_Status;
{$ENDIF}begin
result := false;
ifnot GetRasterizerCaps(rs, sizeof(rs)) then
exit;
if rs.WFlags and TT_AVAILABLE <> TT_AVAILABLE then
exit;
if rs.WFlags and TT_ENABLED <> TT_ENABLED then
exit;
result := true;
end;
Функция Delphi для определения установки шрифтов TrueType на системе!
Код довольно прост, поэтому я предоставлю краткое объяснение.
Функция IsTrueTypeInstalled возвращает булевое значение, указывающее, доступны ли и включены ли шрифты TrueType на системе. Вот что она делает:
Она определяет две переменные: rs типа TRasterizerStatus (на Windows) или TRasterizer_Status (на не-Windows платформах).
Функция инициализирует result в false, предполагая, что шрифты TrueType не установлены.
Она вызывает функцию GetRasterizerCaps, передавая указатель на переменную rs и размер структуры (sizeof(rs)). Если это fails, функция выходит из программы сразу.
Код затем проверяет два флага в поле WFlags структуры rs:
TT_AVAILABLE: если установлен, указывает, что шрифты TrueType доступны на системе.
TT_ENABLED: если установлен, указывает, что шрифты TrueType включены и готовы к использованию.
Если оба флага установлены (and TT_AVAILABLE <> TT_AVAILABLE и and TT_ENABLED <> TT_ENABLED), функция устанавливает result в true, указывая, что шрифты TrueType установлены и включены.
Обратите внимание, что этот код зависит от функции GetRasterizerCaps, которая является специфичной для Windows. На не-Windows платформах (например, macOS или Linux) вам нужно использовать альтернативные методы для определения доступности шрифтов TrueType.
Маленькая рекомендация: рассмотрите возможность добавления более подробных комментариев к коду, чтобы объяснить, что каждый участок кода делает. Это может сделать его проще для других (или для вас) понять и поддерживать в будущем.
В статье описывается функция IsTrueTypeInstalled на языке Delphi, которая позволяет определить установлены ли в системе шрифты TrueType.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.