【问题标题】:How to change layout of form title bar to RTL?如何将表单标题栏的布局更改为 RTL?
【发布时间】:2014-06-03 05:31:02
【问题描述】:

感谢以下脚本,我可以将整个表单布局更改为 RTL。

procedure TfrmTest.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
    Params.ExStyle := WS_EX_LEFT or WS_EX_LTRREADING or WS_EX_LEFTSCROLLBAR
     or WS_EX_LAYOUTRTL;
    {WS_EX_LEFT to set the text caption to the right,
    use WS_EX_RIGHT to set the caption to the left}
end;

结果:

但是我怎样才能只更改表单标题栏而不是表单内的整个控件?

【问题讨论】:

  • 您的目标是什么语言?您希望标题栏小部件发生什么变化?按钮和系统菜单图标。
  • 我使用的是从右到左的语言,并且希望标题栏项目适合我的语言。表单标题必须向右,按钮向左(英语​​和其他 LTR 语言的方向正好相反)。
  • 托管无边界表单。
  • 我不明白。你说的主机是什么意思?
  • @SAM - 我的意思是通过手动对接 f.i. 在 RTL 布局表单中作为 LTR 布局表单的父级。但是您的解决方案更好。

标签: delphi delphi-xe2


【解决方案1】:

我搜索了 MSDN,发现这是镜像问题。将WS_EX_NOINHERITLAYOUT添加到Params.ExStyle即可解决:

procedure TfrmTest.CreateParams(var Params: TCreateParams);
begin
  ... 
  Params.ExStyle := ... or WS_EX_NOINHERITLAYOUT;
end;

【讨论】:

    猜你喜欢
    • 2022-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多