Consistência da fonte em todo o projeto?
Existe uma maneira rápida e eficaz de aplicar uma fonte global a ser usada em um projeto?
Com isso quero dizer que gostaria de definir um nome de fonte específico que todos os controles do meu projeto usarão, comoTButton
, TEdit
, TLabel
etc.
Em geral, definir a fonte para o formulário em vez de um controle específico alterará todos os controles desse formulário para a fonte especificada.
Há um pequeno problema com isso, no entanto, se você tiver alterado manualmente uma fonte em um controle específico, a configuração da fonte pelo formulário não atualizará mais os controles que foram alterados manualmente anteriormente.
Ideia 1
Eu estava pensando em usar um loop for e iterar através de cada componente em meus formulários e definindo a fonte dessa maneira, como:
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;
Mas fazendo isso parece muito confuso, também será uma quantidade considerável de código para uma tarefa simples.
Ideia 2
Eu sei que eu poderia alterar manualmente as fontes em tempo de design, um por um para cada controle, mas com vários formulários para passar isso poderia levar tempo e mesmo assim eu poderia perder um controle.
Ideia 3
Semelhante ao Idea 2, outra maneira poderia ser exibir o Form como Texto (DFM) e Localizar e Substituir a fonte dessa maneira.
Basicamente eu estou indo para a consistência dentro do meu aplicativo, e ter uma fonte usada em todo é o que eu estava procurando alcançar.
Estou faltando alguma coisa completamente óbvia aqui, é o que estou tentando fazer um exagero para tal tarefa?