注册 登录
编程论坛 Delphi论坛

关于鼠标拖动按钮移动 新手求教~~~~~~

zhuxiao201 发布于 2007-12-13 20:23, 3586 次点击
如题 怎么在鼠标单击button然后拖动鼠标button也会跟着移动。。。。。刚开始学,我很迷茫   。。。
1 回复
#2
anthony6342007-12-19 13:57
简单的我给你个小程序,就是当点击后让button跟着鼠标走,复杂的像游戏开发里的用到移动装备一般是直接和驱动打交道,可以使用COM对象处理设备的出入,没做过所以没能力多说,可以去查下资料
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private declarations }
    mouseX, mouseY: Integer;
    isCacthMouseDown: Boolean;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if isCacthMouseDown then
  begin
    isCacthMouseDown := False;
  end
  else
  begin
    isCacthMouseDown := True;
  end;
  mouseX := X;
  mouseY := Y;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if isCacthMouseDown then
  begin
    Button1.Left := X - mouseX;
    Button1.Top := Y - mouseY;
  end;
end;
1