在运行时更改TActionManager样式?

时间:2012-03-04 21:18:31

标签: delphi

我的表格上有一个TActionManager。

我想从运行时的代码能够在'Platform Default'和XP Style'之间改变Action Manager的风格。

当我尝试以下任何一项时:

ActionManager1.Style := 'Platform Default';
ActionManager1.Style := 'XP Style';

我收到以下错误:

  

左侧无法分配到

我只能假设此属性对于错误消息是只读的。

是否有解决方法,或者我可能会忽略如何在运行时更改动作管理器样式?

感谢。

2 个答案:

答案 0 :(得分:4)

我对您报告的错误消息感到有些困惑。这不是您的代码生成的错误消息。对于您的问题中的代码,实际报告的错误消息是:

  

E2010不兼容的类型:'TActionBarStyle'和'string'

除此之外,在运行时设置动作管理器样式的正确语法是:

ActionManager1.Style := PlatformDefault;
ActionManager1.Style := XPStyle;
ActionManager1.Style := StandardStyle;

请注意,Style属性的类型为TActionBarStyle。 VCL中定义了TActionBarStyle后代的各种实例,每个注册风格一个。

这些实例是在单元的接口部分中定义的所有全局变量,每个实例一个单元。要访问这些样式对象,您需要use以下单位:

  • Vcl.PlatformDefaultStyleActnCtrls代表PlatformDefault样式。
  • Vcl.XPStyleActnCtrls代表XPStyle样式。
  • Vcl.StdStyleActnCtrls代表StandardStyle样式。

您需要在旧版本的Delphi上省略Vcl前缀。

表单设计器使用一段魔法使样式在Object Inspector中看起来像一个字符串。它已经通过这种方式实现,使您可以注册自己的样式。

答案 1 :(得分:4)

您必须在Style属性中指定TActionBarStyle后代。

试试这个(XPStyle是在XPStyleActnCtrls单元中声明的全局变量)

  ActionManager1.Style:=XPStyle;