1

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

我有一个包含 ActionMainMenuBar 中的子菜单的菜单。我如何通过代码:

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

3 回答 3

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

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

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

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

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

于 2013-07-29T14:00:02.390 回答
0

通过使用菜单的“启用”属性?或作为子菜单起点的菜单项...

于 2013-07-29T07:45:22.983 回答
0

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

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

ActionControls[2] 将是显示为顶级菜单项的类别(在将类别从 ActionManager.

于 2015-11-16T10:36:40.173 回答