2011-06-19 83 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