【发布时间】:2012-05-11 07:46:41
【问题描述】:
我有 2 个表格,我想分享一个 TActionManager 并分配给 TAction-s。
第一个表单是主表单 - 它包含 TActionManager、TAction,标题为“Action”。
Form1 的主菜单将此操作和菜单项标题属性设置为“操作 A”。 Form2 包含 Form1 并且还为 menuitem 分配了动作,并且标题设置为“动作 B”。
在设计期间,一切看起来都不错 - 菜单项在 Form1 和 Form2 中被命名为“Action A”和“Action B”,并且分配了相同的操作。它在运行时也能正常工作(两种表单都正确处理了 OnExecute)。
但是 - 在运行时,Form1 菜单项的标题为“Action A”,而 Form2 的菜单项标题为“Action”,就像操作标题一样。
我是否包含错误,是否可以在 Form2 上包含 Form1 以共享操作和更改标题?它是 D2010 / CB2010 中的错误吗?
例子:
- 创建 Form1 和 Form2 并将主菜单添加到两者
- 将 TActionManager 拖放到 Form1 并在其中创建 Action1。
- 在 Form1 Action1 中分配菜单项,然后修改标题(标题现在显示为粗体,表示更改默认值)
- 在 Form2 中分配菜单项以及 Action1(来自 Form1 TActionManager)并更改默认标题。
- 现在在运行期间,Form1 已更改标题(不同于 Action1.Caption),Form2 与 Action1.Caption 具有相同的标题,尽管标题应该是在步骤 4 中更改的新值。
【问题讨论】:
-
在 Delphi 2009 中这似乎工作正常。如果您更改
TAction.Caption,我的两个测试表单上的菜单项标题都已更改。 -
@TLama 仅当菜单项的标题未更改之前(当然设置 Action 属性之后)。
-
@NGLN,忘记提了。谢谢!
-
我不想更改 TAction.Caption - 这会更改两个菜单上的标题。菜单需要有不同的标题。上面我加了几行代码解释一下。
标签: delphi delphi-2010 c++builder-2010 taction