Delphi TActionMainMenuBar 方向从右到左

4

当使用TActionMainMenuBar时,有没有一种方法可以将Actions组件和子菜单从右到左对齐?

更改bidi似乎没有改变

将Bidiparent设置为false没有帮助

将Align更改为AlRight也没有帮助

在OnShow中设置

  Application.BidiMode := bdRightToLeft;
  SysLocale.MiddleEast := true;

还有其他想法吗?

更新:将actionManager.Style更改为Windows XP确实有帮助。

我首先自定义了代码,但更改仅在设计时间反映,并且仅针对“类别”。动作本身仍然是从左到右的。


同时设置 ActionManager.ActionBars [0] .GlyphLayoutActionManager.ActionsBars [0] .Items [*] .BackgroundLayout 看起来不会改变行为。 不过,我不确定这些属性应该做什么。 - NGLN
2个回答

2
这是TActionMainMenuBar组件中的一个已知bug,已经提交到Quality Central:QC#10877
此问题在2005年就被报告了,由于它至今未得到解决,我不抱太大希望它会被修复。
我非常怀疑是否有简单的解决方法,而且您可能需要使用TMainMenu。您唯一的希望是将ActnMenus VCL单元包含到您自己的项目中,然后找到并修复该bug。我已经多次为TMainMenuTPopupMenu中的许多bug执行了此操作,但恐怕我没有TActionMainMenuBar和从右到左绘图的经验。

0
如果您使用TMainMenu并设置BiDiMode = bdRightToLeft,则所有内容都在右侧。

1
OP希望在菜单项的左侧看到一个子菜单。此外,我认为他/她希望图标、标题和热键被翻转。 - NGLN
@NGLN TMainMenu 在 RTL 模式下处理得很好。实际上,在某些方面,它在 RTL 模式下的工作效果比 LTR 模式下更好,信不信由你! - David Heffernan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接