Карта сайта 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.


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 05:41:51/0.0032970905303955/0