问题非常简单 - 如何将工具栏的布局更改为从右到左(即图标与工具栏右侧对齐,顺序相反 - 第一个是在最右边,第二个是在它的左边,依此类推)在Delphi 7中 ?
TToolBar
没有发布BiDiMode
和ParentBiDiMode
属性,即使我在拦截器类中发布它们,当我将BiDiMode
设置为{时,也没有任何变化{1}}(当然使用bdRightToLeft
= SysLocale.MiddleEast
)。
我尝试使用True
将WS_EX_LAYOUTRTL
设置到工具栏,但结果非常糟糕 - 工具栏重新绘制非常糟糕。此外,图标本身也是镜像的,我不想要它,我只是想从右到左的顺序。
答案 0 :(得分:2)
Delphi不会为TToolbar或TToolButton公开BiDiMode,因为底层的Windows常用ToolBar控件不支持它们。请参阅ToolBar的MSDN文档中配置工具栏的可能值 - 配置它的所有可能值(包括发送TB_SETEXTENDEDSTYLE
时可用的包含与工具栏LTR / RTL方向相关的任何内容的值。
您可以使用带有TB_SETEXTENDEDSTYLE
标记的TBSTYLE_EX_VERTICAL
配置水平或垂直方向(根据文档不建议这样做),但不能使用LTR / RTR按钮对齐。您可以使用带有DT_RTLREADING
的{{3}}配置文本方向性,但不会改变工具栏左侧到右侧的按钮对齐方式。
答案 1 :(得分:1)
如何对齐右边的最后一个按钮:
在按钮之前按下面板,设置Caption:=''和BevelOuter:= bvNone并在FormResize()过程中设置
:procedure TForm1.FormResize(Sender: TObject);
begin
panelSep.Width:=0;
panelSep.Width:=ToolBar1.Width - tbLastButton.Left - tbLastButton.Width;
end;