这很有趣:) 但如何做类似的事情ActionList1.MyAction.Enable:=false
?
一个动作列表有按钮的动作,如果一个按钮是不可见的,我需要禁用它的动作(如果不这样做并按下一个快捷方式,那么将执行一个过程)。
可能是我做错了什么,但我没有为按钮分配操作。我只有一个带有动作的动作列表。每个动作都有一个快捷方式。当按下此快捷方式时,将执行该操作并执行一个过程。如果单击按钮 -> 也会执行相同的过程。
State:=asSuspended
用于整个动作列表。
谢谢!!!
这很有趣:) 但如何做类似的事情ActionList1.MyAction.Enable:=false
?
一个动作列表有按钮的动作,如果一个按钮是不可见的,我需要禁用它的动作(如果不这样做并按下一个快捷方式,那么将执行一个过程)。
可能是我做错了什么,但我没有为按钮分配操作。我只有一个带有动作的动作列表。每个动作都有一个快捷方式。当按下此快捷方式时,将执行该操作并执行一个过程。如果单击按钮 -> 也会执行相同的过程。
State:=asSuspended
用于整个动作列表。
谢谢!!!
您应该分配按钮的Action
属性并通过操作控制一切。将动作设置为禁用、不可见等,按钮如下。
不要设置按钮的 OnClick 事件处理程序,而是使用操作的相应事件。使用操作的 OnUpdate 事件来设置 Visible、Enabled 等属性,基本上是在运行时更改的所有内容。
TActionList
是一个包含一个或多个TAction
's 的列表。
TAction
具有以下属性:
AutoCheck
Caption
Checked
Enabled
GroupIndex
HelpContext
HelpKeyword
HelpType
Hint
ImageIndex
SecondaryShortCuts
ShortCut
Visible
只要您遵循 David 的建议并使用 TActionList 完成所有操作,启用应该就可以正常工作。
或者,如果taction.enabled
对您不起作用,您可以随时测试以查看设置actionxxxx.shortcut := '';
是否有效。
如果不是,那么其他一些快捷方式正在拦截击键。
请参阅: http:
//docwiki.embarcadero.com/VCL/XE/en/ActnList.TAction
http://docwiki.embarcadero.com/VCL/en/ActnList.TActionList