为什么我不能在Delphi TMainMenu中获得热键下划线

时间:2009-08-13 08:00:14

标签: delphi user-interface delphi-2007

在Delphi 2007程序中,我在TAction列表中使用TMainMenu引用操作。我用所有主要标题的热键前缀了&符号:

&File | &Edit | Ev&aluate | ...

在设计视图中,这些热键会按照我的预期加下划线,但是当我启动程序时,它们不再有下划线但仍可以工作。与此相反,对于所有子菜单图标

  &File
  &New ...
  &Open ...

下划线按预期显示。

我知道Windows pisplay属性选项“隐藏带下划线的字母或键盘导航,直到我按下Alt键。”并禁用它。在所有其他程序中,这可以正常工作,包括Delphi IDE。

如果我创建一个新的VCL应用程序并只添加一个TMainMenu和一些菜单项,它将按预期工作。

这让我很困惑,真的。

TMainMenu组件是否有任何属性,或者我必须更改应用程序选项?由于某种原因,“启用运行时主题”项目选项显示为灰色,可能是问题?如果是,是什么导致了这个?

5 个答案:

答案 0 :(得分:2)

这可能不是德尔福问题。我刚刚在WinXP上用IE8试过这个。在我的机器上,显示属性设置为需要Alt键,下划线按预期工作。但是,如果未选中该复选框,则主菜单项上会出现下划线 never (即使使用Alt键),但始终显示在“文件”,“编辑”,“查看”等子菜单上(如您所述)。 .......除非微软在Delphi中编写IE8: - )

答案 1 :(得分:1)

去年我问了同样的问题,并且有一些很好的答案: Menu Accelerator Keys Not Showing Up Delphi 2009

总之,它似乎是一个Delphi错误,我向Embarcadero报告: http://qc.embarcadero.com/wc/qcmain.aspx?d=68816

然而,他们没有解决方案,所以除非其他人(也许你)也抱怨,否则我不认为会得到解决。

Step对我的问题的回答是指在Delphi论坛上报告的一个可能相关的错误: ALT Key press causes controls to disappear under Themes in Vista and XP。这个标记为“已解决”,注释中列出了几种可能的修复方法。我没有机会经历这些。


顺便说一下,自去年我提出这个问题以来,我买了一台带Vista的新电脑。即使在Vista轻松访问中心设置:“下划线键盘快捷键和访问键”设置时,仍会出现同样的问题。所以Delphi bug仍然存在。

我很惊讶地发现默认情况是这是未经检查的。我想在Vista中,他们想要一个看起来更干净的菜单,假设没有多少人使用过加速键。

答案 2 :(得分:1)

解决此问题的最简单方法似乎是使用jvcl中的TJvMainMenu而不是TMainMenu。我尝试了当前版本3.38,但问题可能已在早期版本中得到修复。因为我使用的是jvcl,所以它对我的程序大小没有太大影响。你的里程可能会有所不同,jvcl是一个庞大的图书馆。

答案 3 :(得分:0)

如果可能,使用主菜单的空图像列表。通过这种方式,您可以强制delphi正确绘制菜单。 (但在vista和w7中看起来很难看)

答案 4 :(得分:0)

您确定MainMenu中没有将OwnerDraw设置为true吗?