Delphi FireMonkey:如何更改样式本';所有窗体运行时上的样式?
我有两个加载了自定义样式的样式本,希望它们能同时应用于所有表单(在windows上测试,东京10.2.3)Delphi FireMonkey:如何更改样式本';所有窗体运行时上的样式?,delphi,styles,firemonkey,Delphi,Styles,Firemonkey,我有两个加载了自定义样式的样式本,希望它们能同时应用于所有表单(在windows上测试,东京10.2.3) 如果我设置UseStyleManager=true,则此代码不起作用。如果UseStyleManager=false,则它只对一个表单有效。您可以使用Application.Components[]访问每个表单并设置其样式本属性。对于这两个样式本,保留UseStyleManager=False 在主窗体中添加: type TForm14 = class(TForm) ...
如果我设置
UseStyleManager=true
,则此代码不起作用。如果UseStyleManager=false
,则它只对一个表单有效。您可以使用Application.Components[]
访问每个表单并设置其样式本
属性。对于这两个样式本,保留UseStyleManager=False
在主窗体中添加:
type
TForm14 = class(TForm)
...
private
procedure ChangeApplicationStyle(sb: TStyleBook);
并实施:
procedure TForm14.ChangeApplicationStyle(sb: TStyleBook);
var
i: integer;
begin
for i := 0 to Application.ComponentCount - 1 do
if Application.Components[i] is TForm then
TForm(Application.Components[i]).StyleBook := sb;
end;
最后更改,例如:
procedure TForm14.Button1Click(Sender: TObject);
begin
ChangeApplicationStyle(StyleBook1);
end;
procedure TForm14.Button2Click(Sender: TObject);
begin
ChangeApplicationStyle(StyleBook2);
end;
procedure TForm14.Button1Click(Sender: TObject);
begin
ChangeApplicationStyle(StyleBook1);
end;
procedure TForm14.Button2Click(Sender: TObject);
begin
ChangeApplicationStyle(StyleBook2);
end;