【问题标题】:delphi TActionMainMenuBar Direction Right To Leftdelphi TActionMainMenuBar 方向从右到左
【发布时间】:2011-06-19 09:09:29
【问题描述】:

在使用 TActionMainMenuBar 时,有没有办法让 Actions 组件和子菜单从右到左对齐?

更换比迪烟似乎没有改变

将 Bidiparent 设置为 false 没有帮助

将 Align 更改为 AlRight 没有帮助

设置在 OnShow

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

还有什么想法吗?

更新:将 actionManager.Style 更改为 windows xp 确实有帮助。

我确实首先自定义了代码,但是更改仅在设计时反映,并且仅反映在“类别”中。动作本身保持从左到右。

【问题讨论】:

  • 另外设置 ActionManager.ActionBars[0].GlyphLayoutActionManager.ActionsBars[0].Items[*].BackgroundLayout 似乎并没有改变行为。不过,我不确定这些属性应该做什么。

标签: delphi delphi-2009 alignment right-to-left


【解决方案1】:

这是已提交给 Quality Central 的 TActionMainMenuBar 组件中的一个已知错误:QC#10877

早在 2005 年就报告了该故障,由于尚未修复,因此我不抱太大希望将其修复。

我非常怀疑是否有简单的解决方法,并怀疑您可能需要求助于TMainMenu。您只希望将 ActnMenus VCL 单元包含到您自己的项目中,然后找到并修复错误。我已经为TMainMenuTPopupMenu 中的众多错误一次又一次地这样做了,但恐怕我没有使用TActionMainMenuBar 的经验,也没有从右到左绘图的经验。

【讨论】:

    【解决方案2】:

    如果您使用 TMainMenu 并设置 BiDiMode = bdRightToLeft,那么一切都在正确的站点上。

    【讨论】:

    • OP 期望在菜单项的左侧有一个子菜单。我也认为他/她希望字形、字幕和热键翻转。
    • @NGLN TMainMenu 可以很好地处理 RTL。事实上,在某些方面,它实际上在 RTL 模式下比在 LTR 模式下效果更好,信不信由你!
    猜你喜欢
    • 1970-01-01
    • 2011-09-25
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多