是否有一种快速有效的方法来应用在项目中使用的全局字体?
我的意思是我想设置,在我的项目中的所有控件都将使用如特定的字体名称TButton,TEdit,TLabel等.
通常为表单而不是特定控件设置字体会将该表单上的所有控件更改为指定的字体.
但是,如果您在特定控件上手动更改了字体,那么通过表单设置字体将不再更新先前已手动更改的控件.
想法1
我正在考虑使用For循环并迭代我的Forms上的每个组件并以这种方式设置Font,例如:
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;
Run Code Online (Sandbox Code Playgroud)
但这样做看起来非常混乱,对于一个简单的任务来说,它也将是相当多的代码.
想法2
我知道我可以在设计时手动为每个控件逐个手动更改字体,但有几种形式要经过这可能需要时间,即使这样我也可能错过了一个控件.
想法3
与Idea 2类似,另一种方法可以是将表单视为文本(DFM)以及查找和替换该方式的字体.
基本上我要在我的应用程序中保持一致性,并且始终使用一个Font是我想要实现的.
我在这里错过了一些完全明显的东西,我正在尝试为这样的任务做些过分吗?