首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将TAction重命名为另一种形式

将TAction重命名为另一种形式
EN

Stack Overflow用户
提问于 2012-05-01 20:00:37
回答 2查看 707关注 0票数 4

我有两个表单,我想共享一个TActionManager并分配TAction-s。

第一种形式是主要形式-它包含TActionManagerTAction,标题为"Action“。

Form1的主菜单将此操作和菜单项标题属性设置为“操作A”。Form2包括Form1,还将操作分配给菜单项,标题设置为"Action“。

在设计期间,所有看起来都很好的菜单项在Form1和Form2中被命名为"Action“和"Action”,并且分配了相同的操作。它在运行时也能正常工作(OnExecute对这两种表单都进行了适当的处理)。

但是-在运行时,Form1菜单项有标题" action“,而Form2有菜单项标题"Action”,就像动作标题一样。

我是否不正确地包含它们,是否可以在Form2上包含Form2以共享操作和更改标题?它是D2010 / CB2010中的一个bug吗?

示例:

value)

  • Assign

  • 创建Form1和Form2,并将主菜单添加到

  • 中,将TActionManager放置到Form1中并在其中创建Action1。

  • 在Form1 Action1中分配菜单项,在修改标题之后(标题现在显示为粗体,指示从Form2 Action1中的默认Form1菜单项更改),并更改默认的caption.

  • During运行时,现在已更改标题(与Action1.Caption不同),# in 20#具有与Action1.Caption相同的标题,尽管标题应该是新值,因为在步骤4中更改了21#。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-01 21:11:45

我重复了你的问题,确实,这是奇怪的行为。除了为什么要更改菜单项标题这一显而易见的问题外,以下内容应该有效:

将两个菜单项的Action属性设置为相同的操作。现在菜单项的标题与操作的标题相链接,并注意它们不再被存储(它们在对象检查器中似乎没有粗体)。随后,将菜单项的标题更改为独立的值,并注意它们现在已被存储,并且菜单项在设计时确实发生了相应的变化。

但是在运行时,第二个菜单项的标题实际上又跟在动作的标题后面。在我看来,这不应该发生。

我没有再现的是在运行时更改它是不可能的。以下工作按预期进行(此处为D7):

代码语言:javascript
复制
procedure TForm2.FormCreate(Sender: TObject);
begin
  mnuAction1.Caption := 'Action B';
end;

确实,您正在更改菜单项的标题,而不是操作的标题?

票数 5
EN

Stack Overflow用户

发布于 2012-05-01 20:07:58

当操作链接到菜单项或操作标题更改时,TAction.Caption将重写TMenuItem.Caption。如果在窗体加载方法中更改菜单项标题,则应能够对这两种窗体具有不同的标题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10403528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档