procedure TForm1.FormMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
FDetaX := x;
FDetaY := y;
MoveEnable := True;
end;
procedure TForm1.FormMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
nLeft,nTop:integer;
begin
if (not (ssLeft in Shift))or(MoveEnable = False) then exit;
nleft := Left + X - FDetaX;
nTop := Top + Y - FDetaY;
//重设窗口位置
SetBounds(nLeft,nTop,width,height);
end;procedure TForm1.FormMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
MoveEnable := False;
end;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
FDetaX := x;
FDetaY := y;
MoveEnable := True;
end;
procedure TForm1.FormMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
nLeft,nTop:integer;
begin
if (not (ssLeft in Shift))or(MoveEnable = False) then exit;
nleft := Left + X - FDetaX;
nTop := Top + Y - FDetaY;
//重设窗口位置
SetBounds(nLeft,nTop,width,height);
end;procedure TForm1.FormMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
MoveEnable := False;
end;
TForm1 = class(TForm)
public
procedure AppMessage(var Msg:TMsg);message WM_LButtonDown;
end;implementation
//.........procedure TForm1.AppMessage(var Msg:TMsg);
begin
SendMessage(Handle,WM_NCLButtonDown,HTCaption,GetMessagePos);
end;
begin
inherited;
if Msg.Result = htClient then
Msg.Result := HTCAPTION
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Form1.perform(WM_SysCommand,$F012,0);
end;