Есть ли быстрый и эффективный способ применения глобального шрифта, который будет использоваться в проекте?
Под этим я подразумеваю, что хотел бы установить определенное имя шрифта, которое будут использоваться всеми элементами управления в моем проекте, такими как 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) и поиск и замена шрифта таким образом.
В основном я собираюсь выполнить последовательность в моем приложении, и использование одного Font во всем - это то, что я хотел достичь.
Я пропустил что-то совершенно очевидное здесь, это то, что я пытаюсь сделать слишком много для такой задачи?