discussion私たちが持っていたものから、あなたが RTL 読み取りを使用していることを知っており、スタイルもコントロール スタイルにJvTreeView含める必要があることを追加しました。TVS_RTLREADINGしたがって、後期コントロール スタイル (使用したもの) でそれを行う方法は次のとおりです。
procedure TForm1.FormShow(Sender: TObject);
begin
  SetWindowLong(JvTreeView1.Handle, GWL_STYLE, GetWindowLong(
    JvTreeView1.Handle, GWL_STYLE) or TVS_RTLREADING);
  SetWindowLong(JvTreeView1.Handle, GWL_EXSTYLE, GetWindowLong(
    JvTreeView1.Handle, GWL_EXSTYLE) or WS_EX_LAYOUTRTL or WS_EX_RIGHT);
end;
コントロール通知の問題は、座標マッピングにあります (this answerなぜ起こるのかを見てください)。ソースの修正として、3094 行目JvComCtrls.pasのポイント マッピングを次のように置き換えることができます。ScreenToClient
MapWindowPoints(0, Handle, Point, 1);
メソッドのJvComCtrls.pasユニットでは、次のCNNotifyようになります。
3071  procedure TJvTreeView.CNNotify(var Msg: TWMNotify);
....  ...
3091    inherited;
3092    if Windows.GetCursorPos(Point) then
3093    begin
3094      MapWindowPoints(0, Handle, Point, 1);
3095      case Msg.NMHdr.code of
....  ...