2011-06-19 61 views
4

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

改变比迪didnt apear改变

设置Bidiparent为false并没有帮助

改变对齐到正常的没有帮助

在OnShow中

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

任何更多的想法塞汀?

更新:更改actionManager.Style到Windows XP有帮助。

我确实先定制了代码,但是更改仅在设计时反映出来,只反映在“类别”中。行动本身保持在左边。

+0

还设置了'ActionManager.ActionBars [0] .GlyphLayout'或'ActionManager.ActionsBars [0] .Items [*]。BackgroundLayout'似乎没有改变行为。虽然,我不确定这些属性应该做什么。 – NGLN

回答

2

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

这个故障早在2005年就有报道,由于它还没有被修复,我并没有抱太大的希望,它将永远不会被修复。

我非常怀疑有一个简单的解决方法,并怀疑您可能需要求助于TMainMenu。你只希望将ActnMenus VCL单元包含到你自己的项目中,然后找到并修复这个bug。我已经为TMainMenuTPopupMenu中的大量错误做过这样的事情,但恐怕我没有TActionMainMenuBar的经验,也没有从右到左绘图的经验。

0

如果您使用TMainMenu并设置BiDiMode = bdRightToLeft,则所有内容都位于正确的位置。

+1

OP需要菜单项左侧的子菜单。另外,我认为他/她希望翻转字形,字幕和热键。 – NGLN

+0

@NGLN'TMainMenu'处理RTL罚款。实际上,在某些方面,它实际上在RTL模式下比在LTR模式下效果更好。 –

+0

@David Whaa,我错过了Ravaut使用标准TMainMenu。咄... – NGLN