我有2本加载了自定义样式的StyleBook,并且希望将它们一次应用于所有表单(在Windows上进行测试,东京10.2.3)。
procedure TForm6.Button1Click(Sender: TObject);
begin
StyleBook := StyleBook2;
end;
procedure TForm6.Button2Click(Sender: TObject);
begin
StyleBook := StyleBook1;
end;
如果我设置了UseStyleManager=true
,则此代码无效。如果为UseStyleManager=false
,则只能使用一种形式。
答案 0 :(得分:2)
您可以使用Application.Components[]
来访问每个表单并设置其StyleBook
属性。为两个样式簿保留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;