Mic*_*lev 3 delphi styles firemonkey
我有 2 个样书加载了自定义样式,并希望它们立即应用于所有表单(在 Windows、Tokyo 10.2.3 上进行测试)。
procedure TForm6.Button1Click(Sender: TObject);
begin
StyleBook := StyleBook2;
end;
procedure TForm6.Button2Click(Sender: TObject);
begin
StyleBook := StyleBook1;
end;
Run Code Online (Sandbox Code Playgroud)
如果我设置了UseStyleManager=true,则此代码不起作用。如果UseStyleManager=false,它有效,但仅适用于 1 种形式。
您可以使用Application.Components[]来访问每个表单并设置其StyleBook属性。留给UseStyleManager = False两本样式书。
添加到主窗体:
type
TForm14 = class(TForm)
...
private
procedure ChangeApplicationStyle(sb: TStyleBook);
Run Code Online (Sandbox Code Playgroud)
并实施:
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;
Run Code Online (Sandbox Code Playgroud)
最后要改变,例如:
procedure TForm14.Button1Click(Sender: TObject);
begin
ChangeApplicationStyle(StyleBook1);
end;
procedure TForm14.Button2Click(Sender: TObject);
begin
ChangeApplicationStyle(StyleBook2);
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1711 次 |
| 最近记录: |