如何在ActionMainMenuBar中禁用菜单,子菜单?

时间:2013-07-29 06:38:24

标签: delphi tactionmanager

使用:Delphi XE3,VCL Forms应用程序

我有一个菜单,其中包含ActionMainMenuBar中的子菜单。我怎样才能通过代码:

  1. 停用菜单
  2. 禁用子菜单

3 个答案:

答案 0 :(得分:3)

  1. 为每个要启用禁用的菜单/子菜单创建“TAction”。不要将它们分配到任何类别。

  2. 为这些操作创建“OnExecute”事件处理程序,以便可以启用这些操作。您不必在处理程序中放置任何代码,注释('//')足以让IDE不删除处理程序。

  3. 从表单设计器中选择代表菜单/子菜单的“TActionClient”,只需单击该项即可。

  4. 将其中一个操作分配给对象检查器中的“操作”属性。

  5. 启用/禁用与'TActionClient'关联的操作,该操作代表运行时的菜单/子菜单,以便相应地启用/禁用菜单/子菜单。

答案 1 :(得分:0)

使用菜单的“启用”属性?或菜单项,它是子菜单的起点...

答案 2 :(得分:0)

如果您知道该类别的顶级菜单项的索引,您实际上可以在运行时(在Delphi 7中)禁用它,如下所示:

ActionMainMenuBar.ActionControls[2].Enabled := False;

ActionControls [2]将显示为顶级菜单项(在将类别从ActionManager拖到ActionMainMenuBar之后。