Delphi:从动作列表中禁用1动作

时间:2011-07-19 17:44:39

标签: delphi taction tactionlist

这很有趣:)但是如何做ActionList1.MyAction.Enable:=false之类的事情?

动作列表具有按钮操作,如果按钮不可见,我需要禁用它的动作(如果不执行此操作并按下快捷方式,则执行该过程)。

可能是我做错了,但我没有给按钮分配动作。我只有一个带动作的动作列表。每个动作都有一个快捷方式按下此快捷方式后,将执行操作并执行操作。如果要点击按钮 - >同样的程序也将被执行。

State:=asSuspended用于整个动作列表。

感谢!!!

2 个答案:

答案 0 :(得分:6)

您应该分配按钮的Action属性并通过操作控制所有内容。将操作设置为禁用,不可见等,按钮也会跟随。

不要设置按钮的OnClick事件处理程序,而是使用相应的操作事件。使用操作的OnUpdate事件来设置Visible,Enabled等属性,基本上是在运行时更改的所有内容。

答案 1 :(得分:1)

TActionList是包含一个或多个TAction的列表。

TAction具有以下属性:
自动检查
标题
经过
启用
的GroupIndex
HelpContext
HelpKeyword
HelpType
提示
图像索引
SecondaryShortCuts
快捷
可见

只要您遵循David的建议并使用TActionList执行所有操作,启用就可以正常工作。

或者,如果taction.enabled对您不起作用,您可以随时进行测试,看看设置actionxxxx.shortcut := '';是否有效。
如果没有,那么其他一些捷径就是拦截击键。

请参阅:
http://docwiki.embarcadero.com/VCL/XE/en/ActnList.TAction
http://docwiki.embarcadero.com/VCL/en/ActnList.TActionList