Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Список системных шрифтов в Delphi 2009: как отобразить и различать Unicode и не-Unicode шрифты

Delphi , Графика и Игры , Шрифты

Вопрос о том, как получить полный список системных шрифтов пользователя для отображения в выпадающем списке в приложении на Delphi, является актуальным для разработчиков, использующих среду Delphi 2009, полностью поддерживающую Unicode. Рассмотрим, как можно решить эту задачу, учитывая необходимость различать Unicode и не-Unicode шрифты.

Получение списка системных шрифтов

Для начала, в Delphi 2009 можно воспользоваться свойством Screen.Fonts, которое позволяет получить список доступных шрифтов. Вот пример кода, который добавляет шрифты в список:

ListBox1.Items.AddStrings(Screen.Fonts);

Различение Unicode и не-Unicode шрифтов

Чтобы различать Unicode и не-Unicode шрифты, можно использовать функцию EnumFontFamiliesEx, которая возвращает структуру TNewTextMetricEx, содержащую информацию о шрифте, включая TFontSignature с полем fsUsb, указывающим поддерживаемые подмножества Unicode.

type
  TFontSignature = record
    fsUsb: Cardinal;
    // другие поля
  end;

  TNewTextMetricEx = record
    // другие поля
    FontSig: TFontSignature;
    // другие поля
  end;

Для получения дополнительной информации о поддержке Unicode символов шрифтом, можно использовать функцию GetFontUnicodeRanges.

Использование Uniscribe

Система отображения текста с использованием разных шрифтов в зависимости от поддержки символов называется Uniscribe. Для Delphi нет прямой поддержки Uniscribe, но можно изучить возможности импорта через соответствующие единицы, или обратиться к блогу Михаила Каплана, который иногда обсуждает Uniscribe.

Выводы

Хотя Windows не может однозначно определить, является ли шрифт Unicode, можно использовать предоставляемые операционной системой средства для определения поддерживаемых символов. Важно помнить, что даже шрифты с названием "Unicode" не обязательно содержат глифы для всех Unicode символов. Поэтому, при выборе шрифта, следует учитывать его поддержку конкретных символов, которые необходимы для вашего приложения.

Создано по материалам из источника по ссылке.

Вопрос связан с получением и различением системных шрифтов в среде разработки Delphi 2009, с учетом их поддержки Unicode.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Шрифты ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-10 17:50:14/0.0034279823303223/0