Если вам нужно ограничить область передвижения мыши по экрану, то используйте следующий код:
procedure TForm1.Button1Click(Sender: TObject);
var
cr:TRect;
begin
cr:=Rect(0,0,100,100);
ClipCursor(@cr);
end;
В данном примере, мы инициализируем переменную cr типа TRect. Затем мы задаём диапазон движения мышки. Для этого в переменную cr заносим прямоугольную область размером 100 на 100 пикселей. И в самом конце, с помощью процедуры ClipCursor, мы заключаем курсор в рамки. То есть ограничиваем область перемещения мыши.
Блокируем курсор мыши в нужной точке экрана
Если нам, например, нужно вообще "запереть" курсор мыши в левом верхнем углу, то можно использовать этот код:
procedure TForm1.Button1Click(Sender: TObject);
var
cr:TRect;
begin
cr:=Rect(0,0,1,1);
ClipCursor(@cr);
end;
Таким образом, после нажатия на кнопку, курсор будет перемещен в левый верхний угол и размер области движения мыши будет равен 1 пикселю по горизонтали
и вертикали. В результате мышь просто замрёт в этом пикселе.
Ограничиваем область движения мыши по краям экрана
А вот пример, как уменьшить область перемещения мыши на 100 пикселей по краям экрана:
procedure TForm1.Button1Click(Sender: TObject);
var
r: TRect;
pr: PRect;
begin
r.Left := 100;
r.Top := 100;
r.Right := Screen.Width - 100;
r.Bottom := Screen.Height - 100;
pr := @r;
ClipCursor(pr);
end;
Снимаем ограничение передвижения мыши
Если вам нужно восстановить области передвижения курсора (снять ограничение перемещения), то используйте следующий код:
procedure TForm1.Button2Click(Sender: TObject);
begin
ClipCursor(NIL);
end;
Процедура ClipCursor
Заключает куpсоp в рамки Rect. Если Rect имеет значение nil, то куpсоp является неогpаниченным.
Описание
procedure ClipCursor(Rect: TRect);
Параметры
Rect: Огpаничивающий TRect в кооpдинатах экpана.
