Согласованность шрифтов по всему проекту?
Is there a quick and effective way of applying a global Font to be used in a project?
Под этим я подразумеваю, что я хотел бы установить конкретное имя шрифта, которое будут использовать все элементы управления в моем проекте, такие какTButton
, TEdit
, TLabel
и т.п.
Как правило, установка шрифта для формы, а не конкретного элемента управления, изменит все элементы управления в этой форме на указанный шрифт.
Однако есть небольшая проблема: если вы вручную изменили шрифт для определенного элемента управления, то установка шрифта с помощью формы больше не будет обновлять те элементы управления, которые ранее были изменены вручную.
Idea 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;
Но делать это кажется очень грязным, это также будет значительный объем кода для простой задачи.
Idea 2
Я знаю, что я мог вручную изменять шрифты во время разработки по одному для каждого элемента управления, но из-за нескольких форм, проходивших через это, могло потребоваться время, и даже тогда я мог пропустить элемент управления.
Idea 3
Как и в случае с Идеей 2, другим способом может быть просмотр формы в виде текста (DFM) и поиск и замена шрифта таким образом.
По сути, я стремлюсь к согласованности в своем приложении, и мне хотелось бы использовать один шрифт повсюду.
Я что-то упускаю здесь совершенно очевидно, что я пытаюсь сделать излишним для такой задачи?