Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Установка шрифтов для системного меню

Delphi , Компоненты и Классы , Меню

Установка шрифтов для системного меню

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

procedure TForm1.Button1Click(Sender: TObject);
 var
   ncm: TNonClientMetrics;
 begin
   ncm.cbSize := SizeOf(TNonClientMetrics);
   {get old non client metrics}
   SystemParametersInfo(SPI_GETNONCLIENTMETRICS, SizeOf(TNonClientMetrics), @ncm, 0);
   { 
  lfCaptionFont - regular captions 
  lfSmCaptionFont - small captions 
  lfMenuFont - menus 
  lfStatusFont - status bars 
  lfMessageFont - message boxes 
  }
   ncm.lfMessageFont.lfFaceName := 'Tahoma';
   {set new non client metrics}
   SystemParametersInfo(SPI_SETNONCLIENTMETRICS, SizeOf(TNonClientMetrics), @ncm, 0);
 end;

Перевод:

Процедура Delphi для настройки шрифта для различных системных элементов, таких как заголовки, меню и сообщения. Вот разбивка того, что код делает:

  1. Он объявляет переменную ncm типа TNonClientMetrics, которая представляет метрики не-клиентских элементов.
  2. Свойство cbSize устанавливается в размер структуры TNonClientMetrics.
  3. Процедура затем вызывает функцию SystemParametersInfo с действием SPI_GETNONCLIENTMETRICS, чтобы получить текущие метрики не-клиентских элементов.
  4. Полученные метрики не-клиентских элементов хранятся в переменной ncm.
  5. Код затем модифицирует свойство lfMessageFont структуры ncm, устанавливая свойство lfFaceName в 'Tahoma', что является конкретной семейством шрифтов.
  6. Наконец, процедура вызывает функцию SystemParametersInfo снова с действием SPI_SETNONCLIENTMETRICS, чтобы применить новые метрики не-клиентских элементов.

Эффект этого кода заключается в том, что системные шрифты для заголовков, меню и сообщений будут установлены в Tahoma. Это может быть полезно, если вы хотите стандартизировать используемый шрифт в вашей приложении или если вам нужно обеспечить использование определенных шрифтов consistently across различных системах.

Вот альтернативное решение с более современным подходом:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Application.Fonts.SystemFonts.MessageFont.Name := 'Tahoma';
end;

В этом коде мы используем свойство Application.Fonts.SystemFonts.MessageFont для доступа к системному шрифту, используемому для сообщений. Затем мы устанавливаем свойство Name в 'Tahoma', что будет применить новый шрифт ко всем будущим сообщениям. Этот подход более компактен и легче для чтения, чем оригинальный код, но он только влияет на сообщения, а не на другие системные элементы.

В статье описывается процедура установки шрифтов для системного меню в приложении Delphi с помощью функции SystemParametersInfo и структуры TNonClientMetrics.


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


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



:: Главная :: Меню ::


реклама



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

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 19:46:42/0.0065779685974121/2