var
...
OldPoint: TPoint;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
GetCursorPos (OldPoint);
Timer1.Interval := 1;
Timer1.Enabled := True;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
var
p: TPoint;
begin
GetCursorPos (p);
OldPoint.X := OldPoint.X - (p.X - OldPoint.X);
OldPoint.Y := OldPoint.Y - (p.Y - OldPoint.Y);
if OldPoint.X < 0 then OldPoint.X := OldPoint.X + Screen.Width;
if OldPoint.Y < 0 then OldPoint.Y := OldPoint.Y + Screen.Height;
if OldPoint.X > Screen.Width then OldPoint.X := OldPoint.X - Screen.Width;
if OldPoint.Y > Screen.Height then OldPoint.Y := OldPoint.Y - Screen.Height;
SetCursorPos (OldPoint.X, OldPoint.Y);
end;