Как заставить TToolBar Dessendent из TToolWindow с помощью BidiMode справа налево - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть TMainMenu, связанное с TToolBar (TToolWindow), как заставить TToolBar с помощью режима BidiMode RightToLeft.
Я пробую все трюки, чтобы заставить его, но мои решения не увенчались успехом .... У меня есть этот код здесь:

procedure Make_ToolBar_RTL(Control: TToolWindow);
var
OldLong: LongWord;
DWriteTextFormat: IDWriteTextFormat; // uses Winapi.D2D1.pas
begin
   OldLong := GetWindowLong(Control.Handle, GWL_EXSTYLE);
   Control.BiDiMode := bdLeftToRight;
   SetWindowLong(Control.Handle, GWL_EXSTYLE, OldLong  or WS_EX_LAYOUTRTL); //WS_EX_RTLREADING & WS_EX_LAYOUTRTL
   Control.Repaint;
   //  DWriteTextFormat.SetReadingDirection(DWRITE_READING_DIRECTION_RIGHT_TO_LEFT); from: Winapi.D2D1.pas
end;

я успешно запустил RTL, но я столкнулся с другой проблемой, связанной с рендерингом текста, и я go перешел на сайт MSDN, чтобы найти, как решить эту проблему выше, я получил эту ссылку здесь я думаю, что мне нужно использовать закомментированный код с использованием SetReadingDirection


пожалуйста, любые советы, которые я слушаю ...

1 Ответ

0 голосов
/ 20 апреля 2020

использовать LMD Components, он имеет очень хорошие и настраиваемые компоненты (TElMainMenu & TElMenuBar)

...