Данный код позволит изменить положение окна, когда вы удерживаете кнопку мыши на форме. Принцип почти такой же будто вы держите за заголовок программы. На заголовке формы будут видны текущие координаты курсора.
Code
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls ;
Type
TForm1= class(TForm)
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
MoveForm:Boolean;
XX,YY:Integer;
end;
var
Form1: TForm1;
Pos: TPoint;
implementation
{$R *.dfm}
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
MoveForm:=True;
end;
Procedure FindPos;
Var
Pos: TPoint; X,Y:Integer;
Begin
If Form1.MoveForm=True then Begin
GetCursorPos(pos);
X:=Pos.X;
Y:=Pos.Y;
Form1.Caption := IntToStr(X) + ' ' + IntToStr(Y);
Form1.Left:= Form1.Left -(Form1.XX - X);
Form1.Top:= Form1.Top -(Form1.YY - Y);
Form1.YY:=Y;
Form1.XX:=X;
End;
End;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
Var Pos: TPoint;
begin
If Form1.MoveForm=True then Begin
GetCursorPos(pos);
X:=Pos.X;
Y:=Pos.Y;
Form1.Caption := IntToStr(X) + ' ' + IntToStr(Y);
Form1.Left:= Form1.Left -(Form1.XX - X);
Form1.Top:= Form1.Top -(Form1.YY - Y);
Form1.YY:=Y;
Form1.XX:=X;
End;
End;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
MoveForm:=False;
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Var
Pos: TPoint;
begin
GetCursorPos(pos);
Form1.YY:=Pos.Y ;
Form1.XX:=Pos.X;
MoveForm:=True;
end;
end.