delphi - 从右到左 TListView

标签 delphi

我正在对 tlistview 进行编程,以便它从右到左显示其列(以便正确显示希伯来语文本)。我在表单的创​​建方法中使用以下代码,其中“lv”是 ListView

 SetWindowLong (lv.Handle, GWL_EXSTYLE,
                GetWindowLong(lv.Handle, GWL_EXSTYLE)  or
                WS_EX_LAYOUTRTL or WS_EX_NOINHERITLAYOUT);

 lv.invalidate;   

虽然此代码使 ListView 中的行正确显示,但标题行从左到右显示!列不匹配,并且每列的标题都是错误的。

有人知道如何让标题行从右向左显示吗?

我使用的是 Delphi 7,但这不会有太大区别。

TIA, 诺姆

最佳答案

以下是设置标题和行的完整代码:

procedure TForm1.FormCreate(Sender: TObject);
const
  LVM_FIRST = $1000;      // ListView messages
  LVM_GETHEADER = LVM_FIRST + 31;
var
  header: thandle;
begin
  header:= SendMessage (lv.Handle, LVM_GETHEADER, 0, 0);
  SetWindowLong (header, GWL_EXSTYLE,
                 GetWindowLong (header, GWL_EXSTYLE)  or
                 WS_EX_LAYOUTRTL or WS_EX_NOINHERITLAYOUT);

  SetWindowLong (lv.Handle, GWL_EXSTYLE,
                 GetWindowLong (lv.Handle, GWL_EXSTYLE)  or
                 WS_EX_LAYOUTRTL or WS_EX_NOINHERITLAYOUT);
  lv.invalidate;   // get the list view to display right to left
end;

关于delphi - 从右到左 TListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1571051/

相关文章:

delphi - FormatSettings.ShortDateFormat 与系统区域设置不同

delphi - 有没有办法从声明的例程*外部*更改本地类型常量?

delphi - 将 C stdcall 接口(interface)方法中的变量参数转换为 Delphi

delphi - 在 Delphi 中启动 Word x64

Delphi XE 显示至少 200 个错误,但程序编译得很好

Delphi:如何访问另一个应用程序的控件?

delphi - 如何在屏幕上绘制纬度/经度坐标?

delphi - 来自delphi IDE专家的如何枚举IDE的形式

德尔福XE5 : Tooltip evaluation expression not working any more

delphi - 如何更改、禁用按钮颜色 FMX?