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

Получить шрифт системного меню

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

Получить шрифт системного меню

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

function GetMenuFont: TFont;
 var
   ncm: TNonClientMetrics;
 begin
   ncm.cbSize := SizeOf(TNonClientMetrics);
   SystemParametersInfo(SPI_GETNONCLIENTMETRICS, SizeOf(TNonClientMetrics), @ncm, 0);
   Result := TFont.Create;
   { 
  lfCaptionFont - regular captions 
  lfSmCaptionFont - small captions 
  lfMenuFont - menus 
  lfStatusFont - status bars 
  lfMessageFont - message boxes 
  }
   Result.Handle := CreateFontIndirect(ncm.lfCaptionFont);
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   label1.Caption := GetMenuFont.Name;
 end;

Here's the translation of the text into Russian:

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

Работает следующим образом:

  1. Определена функция GetMenuFont, которая возвращает объект TFont.
  2. Внутри этой функции объявляется переменная ncm типа TNonClientMetrics и инициализируется размером TNonClientMetrics.
  3. Вызывается функция SystemParametersInfo, чтобы извлечь метрики системного меню (например, размеры шрифтов для меню, заголовков и т.д.). Эта функция используется для получения текущего состояния различных параметров системы.
  4. Создается новый объект TFont с именем Result, а затем его handle устанавливается с помощью функции CreateFontIndirect с информацией о шрифте, полученной из ncm.lfCaptionFont. Эта информация соответствует регулярным заголовкам в системном меню.
  5. В процедуре Button1Click, когда кнопка нажата, она вызывает функцию GetMenuFont и затем устанавливает текст лейбла с именем label1 в имя извлеченного шрифта.

Альтернативное решение:

function GetMenuFont: TFont;
var
  ncm: TNonClientMetrics;
begin
  ncm.cbSize := SizeOf(TNonClientMetrics);
  SystemParametersInfo(SPI_GETNONCLIENTMETRICS, SizeOf(TNonClientMetrics), @ncm, 0);
  Result := TFont.Create;
  Result.Assign(CreateFontIndirect(LOWORD(ncm.lfCaptionFont)));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  label1.Caption := GetMenuFont.Name + ' (' + IntToStr(GetMenuFont.Size) + ')';
end;

В этом альтернативном решении функция GetMenuFont модифицируется для прямого присваивания созданного шрифта с помощью CreateFontIndirect переменной Result. Процедура Button1Click также модифицируется для отображения как имени, так и размера извлеченного шрифта в тексте лейбла.

Получить шрифт системного меню - функция на Delphi, которая возвращает шрифт системного меню и отображает его в лейбле при нажатии кнопки.


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

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




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


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


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:17:03/0.0055680274963379/1