273700707 273700707
关注数: 1 粉丝数: 18 发帖数: 109 关注贴吧数: 3
求助右键移动panel的问题!!! {鼠标左键可以正常移动,右键会飘(鼠标已经松开了,panel还是可以一定),怎么解决???? 怎么使右键可以像左键一样正常正常拖动????? } unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Panel1: TPanel; procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Panel1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private leftstartdrag:boolean; xstart,ystart:integer; { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin (Sender as Tpanel).BringToFront(); //总在最前 leftstartdrag:=true; xstart:=x; //记录鼠标在控件(panel)中的位置 ystart:=y; end; procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if leftstartdrag then begin (sender as tpanel).left:=(sender as tpanel).Left+x-xstart; //执行move时,控件初始位置+(x-xstart),使控件位置同步 (sender as tpanel).Top:=(sender as tpanel).Top+y-ystart; end end; procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin leftstartdrag:=false; end; end.
1 下一页