我的表格上有一个TActionManager。
我想从运行时的代码能够在'Platform Default'和XP Style'之间改变Action Manager的风格。
当我尝试以下任何一项时:
ActionManager1.Style := 'Platform Default';
ActionManager1.Style := 'XP Style';
我收到以下错误:
左侧无法分配到
我只能假设此属性对于错误消息是只读的。
是否有解决方法,或者我可能会忽略如何在运行时更改动作管理器样式?
感谢。
答案 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;