Согласованность шрифтов во всем Project?

Существует ли быстрый и эффективный способ применения глобального шрифта для использования в проекте?

Под этим я подразумеваю, что я хотел бы установить конкретное имя шрифта, которое будут использовать все элементы управления в моем проекте, такие как TButton, TEdit, TLabelи т. д.

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

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

Идея 1

Я думал об использовании цикла For и переборе каждого компонента в моих формах и настройке шрифта таким образом, например:

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  with TForm(Self) do
  begin
    for i := 0 to ComponentCount - 1 do
    begin
      if Components[i] is TButton then
      begin
        TButton(Components[i]).Font.Name  := 'MS Sans Serif';
        TButton(Components[i]).Font.Size  := 8;
        TButton(Components[i]).Font.Style := [fsBold];
      end;

      if Components[i] is TLabel then
      begin
        TLabel(Components[i]).Font.Name  := 'MS Sans Serif';
        TLabel(Components[i]).Font.Size  := 8;
        TLabel(Components[i]).Font.Style := [fsBold];
      end;
    end;
  end;
end;

Но делать это кажется очень грязным, это также будет значительный объем кода для простой задачи.

Идея 2

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

Идея 3

Подобно идее 2, другим способом может быть просмотр формы как текста (DFM )и поиск и замена шрифта таким образом.


В основном я стремлюсь к согласованности в своем приложении, и использование одного шрифта — это то, чего я хотел достичь.

Я упускаю что-то совершенно очевидное здесь, это то, что я пытаюсь сделать излишним для такой задачи?

23
задан Fabrizio 23 August 2018 в 07:45
поделиться