我在一个Form上创建了一个ScrollBox,又在这个ScrollBox里创建了一个Panel,又在这个Panel里创建了一个Shape。
问:
取得Shape相对于ScrollBox的坐标,如何取得Shape相对于Form的坐标?

解决方案 »

  1.   

    procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      X_xy := ScrollBox1.Left + Panel1.Left + Shape1.Left + X;
      Y_xy := ScrollBox1.Top + Panel1.Top + Shape1.Top + Y;
    end;procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      ShowMessage('X:' + IntToStr(X_xy) + 'Y:' + IntToStr(Y_xy));
    end;
      

  2.   

    忘了声明一下;var
      X_xy,Y_xy: integer;//定义2个坐标的全局变量
      

  3.   

    shape.left:=scrollbox.left+Shape相对于ScrollBox的left;
    shape.top:=scrollbox.top+Shape相对于ScrollBox的top;
    不知道是不是这个意思