В Lazarus как мне найти «реальные» значения шрифта, используемые в форме 1?

#lazarus #freepascal

Вопрос:

Внутри Lazarus значения шрифта по умолчанию для Form1 следующие:
Form1.Font.Name=по умолчанию
Form1.Шрифт.Размер=0

Как мне узнать, каково фактическое «реальное» имя шрифта и размер шрифта для этих значений по умолчанию?

введите описание изображения здесь

Ответ №1:

Этот код, похоже, работает:

 procedure TForm1.GetFormFontName;
var
  S : String;
begin
  S := GetFontData(Self.Font.Handle).Name;
  Caption := S;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  GetFormFontName;
end;
 

GetFontData возвращает запись TFontData

  TFontData = record
    Handle: HFont;
    Height: Integer;
    Pitch: TFontPitch;
    Style: TFontStylesBase;
    CharSet: TFontCharSet;
    Quality: TFontQuality;
    Name: TFontDataName;
    Orientation: Integer;
  end;  
 

Это не включает шрифт Size , который является явным опубликованным свойством шрифта.

Приведенный выше код является производным от этого потока: https://forum.lazarus.freepascal.org/index.php?topic=16697.0, который я нашел как первое попадание, возвращенное этим запросом Google

имя шрифта по умолчанию site:freepascal.org

Комментарии:

1. Я использовал TFontData. Высота и обнаружил, что она была -12. Имя по умолчанию на моей машине было «Segeo UI».