我想mouse.cursorpos是相对于整个Screen的座标点,而OnMouseMove的X,Y则是相对于Form的作标点。
可以通过
Form1.ClientToScreen或者ScreenToClient进行座标转化。

解决方案 »

  1.   

    1.ClientToScreen
    2.ScreenToClient
      

  2.   

    1.ClientToScreen
    2.转换后换要用x-control.left
                 y-control.top
      

  3.   

    procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    var
    p:Tpoint;
    begin
    Form1.Canvas.TextOut(0,0,inttoStr(X) + '  '+ inttoStr(Y));
    Form1.Canvas.TextOut(0,40,inttoStr(Mouse.CursorPos.X) + '  '+ inttoStr(Mouse.CursorPos.Y));
    p:=ScreenToClient(mouse.CursorPos );
    Form1.Canvas.TextOut(0,80,inttoStr(p.X) + '  '+ inttoStr(p.Y));
    end;
      

  4.   

    楼上的,不对
    你可以放一个TreeView在窗体中,然后对MouseDown