求助右键移动panel的问题!!!
delphi吧
全部回复
仅看楼主
level 1
273700707 楼主
{鼠标左键可以正常移动,右键会飘(鼠标已经松开了,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.
2014年05月15日 07点05分 1
1