从右到左TListView

No'*_*man 3 delphi

我正在编写一个tlistview,以便从右到左显示其列(以便正确显示希伯来文本).我在表单的create方法中使用以下代码,其中'lv'是listview

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

 lv.invalidate;   
Run Code Online (Sandbox Code Playgroud)

虽然此代码使列表视图中的行显示正确,但标题行从左到右显示!列不匹配,每列的标题错误.

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

我正在使用Delphi 7,而不是这应该有很大的不同.

TIA,没有

No'*_*man 6

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

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;
Run Code Online (Sandbox Code Playgroud)