鼠标拖动控件问题(80)

  • 主题发起人 主题发起人 xnfzy
  • 开始时间 开始时间
X

xnfzy

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位高手,如何用鼠标拖动控件?我在论坛找到如下代码:procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin ReleaseCapture; (Sender as TControl).Perform(WM_SYSCOMMAND, $F012, 0);end;是可以实现,但是我想只能水平拖动,并且拖动之后获取这个panel的左右边数值!我的目的是想用panel控件的水平拖动来动态取得两个数值!
 
var Form1: TForm1; FMouseDown : boolean; FOldX : Integer;implementation{$R *.dfm}procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin FMouseDown := true; ; FOldX := X;end;procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin FMouseDown := False;end;procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);begin if FMouseDown then begin Panel1.Left := Panel1.Left + (X - FOldX); label1.Caption := '左边:'+inttostr(Panel1.Left)+' 右边:'+inttostr(Panel1.Left+Panel1.Width); end;end;是不是你要的校果
 
非常感谢,大概就是这个意思!不知能否加你QQ,我是的10833359
 
xiaojun5556,
 
xiaojun5556,我还有个小问题请教,如何在运行中将如下代码中的panel可以从左边或右边拉大?水平移动是没有问题了!
 

Similar threads

D
回复
0
查看
392
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部