我有 2 份表格,我想分享一份TActionManager
并分配TAction
-s.
第一种形式是主要形式 - 它包含TActionManager
, TAction
标题为“行动”。
Form1 的主菜单将此操作和菜单项标题属性设置为“操作 A”。
Form2 包含 Form1,并且还将操作分配给 menuitem,并将标题设置为“Action B”。
在设计时,一切看起来都不错 - 菜单项在 Form1 和 Form2 中被命名为“Action A”和“Action B”,并且分配了相同的操作。它在运行时也可以正常工作(两种形式的 OnExecute 都得到了正确的处理)。
但是,在运行时,Form1 菜单项的标题为“Action A”,Form2 的菜单项标题为“Action”,就像操作标题一样。
我是否错误地包含了它们,是否可以将 Form1 包含在 Form2 上以共享操作并更改标题?这是 D2010 / CB2010 中的错误吗?
Example:
- 创建 Form1 和 Form2 并向两者添加主菜单
- 将 TActionManager 拖放到 Form1 中并在其中创建 Action1。
- 在 Form1 Action1 中分配菜单项,然后修改标题(标题现在显示为粗体,表示默认值的更改)
- 在 Form2 和 Action1 中分配菜单项(来自 Form1 TActionManager)并更改默认标题。
- 在运行时,现在 Form1 已更改标题(与 Action1.Caption 不同),并且 Form2 具有与 Action1.Caption 相同的标题,尽管标题应该是步骤 4 中更改的新值。
我重现了您的问题,确实,这是奇怪的行为。除了为什么要更改菜单项标题的明显问题之外,以下内容should work:
设置两个菜单项Action
属性到同一个动作。现在,菜单项的标题已链接到操作的标题,并注意它们不再存储(它们在对象检查器中显示不是粗体)。随后,将菜单项的标题更改为独立值,并注意它们现在已被存储,并且菜单项确实在设计时相应更改。
但在运行时,第二个菜单项的标题确实再次跟随该操作的标题。我认为这不应该发生。
我没有重现的是无法在运行时更改它。以下内容按预期工作(此处为 D7):
procedure TForm2.FormCreate(Sender: TObject);
begin
mnuAction1.Caption := 'Action B';
end;
您确定要更改菜单项的标题而不是操作的标题吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)