在private处输入:
{ Private declarations }
FCanResize,FisDown:Boolean;
FDetax,FDetaY:Integer;
FP,FOldP:TPoint;
{ Private declarations }
FCanResize,FisDown:Boolean;
FDetax,FDetaY:Integer;
FP,FOldP:TPoint;
{==============================================}
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
FisDown:=True;
GetCursorPos(FOldP);
end;
Shift: TShiftState; X, Y: Integer);
begin
FisDown:=True;
GetCursorPos(FOldP);
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if not FisDown then exit;
GetCursorPos(Fp);
FDetaX:=Fp.x-Foldp.x;
FDetaY:=FP.y-FOldP.y;
SetBounds(Left+FDetaX,Top+FDetaY,Width,Height);
GetCursorPos(FOldP);
end;
Y: Integer);
begin
if not FisDown then exit;
GetCursorPos(Fp);
FDetaX:=Fp.x-Foldp.x;
FDetaY:=FP.y-FOldP.y;
SetBounds(Left+FDetaX,Top+FDetaY,Width,Height);
GetCursorPos(FOldP);
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
FisDown:=false;
end;
Shift: TShiftState; X, Y: Integer);
begin
FisDown:=false;
end;
本文介绍了一种使用Delphi实现窗口拖动的方法。通过在Image1组件的MouseDown、MouseMove和MouseUp事件中分别设置标志位并获取鼠标位置变化,从而调整窗体的位置来达到拖动效果。
6863

被折叠的 条评论
为什么被折叠?



