Delphi TActionMainenuBar-禁用第二级子菜单项

Delphi TActionMainenuBar-禁用第二级子菜单项,delphi,action,tactionmanager,Delphi,Action,Tactionmanager,使用Delphi XE5,我将TMainMenu转换为TActionMainMenuBar,但在运行时禁用类别中的子菜单节点(例如,在我的“文件”类别中)会出现问题。大多数“文件”类别项都是从操作管理器中拖出的操作,但我还想将其中两个操作分组到“文件”菜单中的子菜单节点下。对于TMainMenu,我只需使用Create子菜单并编辑生成的TMenuItem标题,但我看到TActionMainMenuBar为每个客户端项都有上下文项,这就是我尝试使用的。结果是布局看起来正常,但子菜单项在运行时被禁用

使用Delphi XE5,我将TMainMenu转换为TActionMainMenuBar,但在运行时禁用类别中的子菜单节点(例如,在我的“文件”类别中)会出现问题。大多数“文件”类别项都是从操作管理器中拖出的操作,但我还想将其中两个操作分组到“文件”菜单中的子菜单节点下。对于TMainMenu,我只需使用Create子菜单并编辑生成的TMenuItem标题,但我看到TActionMainMenuBar为每个客户端项都有上下文项,这就是我尝试使用的。结果是布局看起来正常,但子菜单项在运行时被禁用(可能是因为它没有操作)

这是我在设计时看到的-我自己使用对象检查器中的“添加项”创建了“批量报告”项

这是我在运行时看到的,该项已禁用

这是我在包含上下文项的对象检查器中看到的内容


我是否应该在“批处理报告”项上设置特殊属性以使其处于“无操作”状态?或者我是被迫使用“不做任何事”OneExecute的操作?

我找到了答案-我使用的是子菜单的“上下文项”,我应该使用“项”,如下所示。非常混乱


在Delphi XE3中,我甚至看不到通过结构窗格的“添加项目”弹出菜单项添加的项目(完全错误)。当我通过对象检查器中的
items
collection编辑器添加项时,这些项是可见的,即使没有指定的操作(按预期工作),也会启用那些具有子项的项。Delphi版本在这里可能很重要…@TLama:谢谢,我注意到我使用的是XE5。我想知道为什么在屏幕截图中没有子菜单的情况下,你认为“布局看起来不错”。真的!我现在发现,子菜单编辑可以通过拖放来执行,但只有在您首先创建单个子项时才能执行。然后,可以在此子项周围移动操作管理器中的操作,并在以后删除该子项。除了手动创建子项之外,我还没有找到启动子菜单的方法,但我认为一定有办法(就像TMainMenu一样)。