重命名为TAction另一种形式(Renaming TAction for another form

2019-09-16 23:07发布

我有2种形式我想分享一个单一其TActionManager和分配TAction -s。

第一种形式是主要形式-它拥有TActionManagerTAction与标题“行动”。

Form1的主菜单有这个动作和菜单项的标题属性设置为“行动A”。 窗体2包括Form1并还分配行动菜单项和标题设置为“操作B”。

在设计时一切看起来都很好 - 菜单项目被命名为“动作A”和“行动B”在Form 1和Form和相同的动作被分配。 它还在运行时正常工作(OnExecute正确两种形式进行处理)。

但是 - 在运行时,Form1的菜单项都有标题“行动A” 1和Form 2具有菜单项标题“行动”一样的动作说明。

我是不是包括他们正确,是否有可能包括Form1中Form2上分享行动和改变标题吗? 它是在D2010 / CB2010的错误吗?

例:

  1. 创建Form 1和Form,并添加主菜单都
  2. 掉落TActionManager到Form1并在其中创建措施1。
  3. 在Form1的措施1分配的菜单项,之后修改标题(显示目前为粗体标题表示从默认值的变化)
  4. 在窗体2还措施1(从Form1中TActionManager)指定菜单项,改变默认标题。
  5. 在运行时期间现在Form1中已经改变字幕(从Action1.Caption不同),和窗体2具有相同的标题,以Action1.Caption尽管如在步骤4中改变了字幕应新值。

Answer 1:

我复制你的问题,事实上,这是奇怪的行为。 除了明显的问题,为什么要改变菜单项标题,下面应该工作:

这两个菜单项的设置Action属性设置为相同的动作。 现在的菜单项的标题链接到该行动,并指出,他们不存储任何更长(他们似乎没有在Object Inspector粗体)。 随后,从菜单项的标题改为独立的价值观,并指出,他们现在存储和菜单项确实在设计时发生相应的变化。

但在运行时,第二个菜单项的标题确实遵循的行动一次。 这不应该在我看来发生。

我没有重现是在运行时改变它的inabbility。 如预期下工作(D7这里):

procedure TForm2.FormCreate(Sender: TObject);
begin
  mnuAction1.Caption := 'Action B';
end;

当然要更改的菜单项,而不是该行动的标题?



Answer 2:

该TAction.Caption覆盖TMenuItem.Caption时动作被链接到该菜单项或当动作标题被改变。 如果您更改载入的方法形式的菜单项标题,你应该能够有两种形式不同的标题。



文章来源: Renaming TAction for another form