unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
      rtButton2: TRect;
  begin
      rtButton2 := Button2.BoundsRect;
      MapWindowPoints(handle, 0, rtButton2, 2); // 座标换算
      ClipCursor(@rtButton2); // 限制鼠标移动区域
  end;procedure TForm1.Button2Click(Sender: TObject);
var
      rtScreen: TRect;
  begin
      rtScreen := Rect(0, 0, Screen.Width, Screen.Height);
      ClipCursor(@rtScreen);
  end; 
end.