Как ограничить движения мышки определенной областью?
01.01.2007
Для этого можно воспользоваться API функцией ClipCursor(). Например, можно вставить следующий код в обработчик события формы OnMouseDown:
ClipCursor(&BoundsRect);
а следующий код в обработчик события формы OnMouseUp:
ClipCursor(NULL);
Если нажать кнопку мыши на форме и удерживать её, то курсор мышки не сможет покинуть пределы формы.
Взято из https://forum.sources.ru
Сначала определяете ограничивающий прямоугольник, затем используете функцию ClipCursor(), передав ей в качестве параметра указатель на этот прямоугольник. Например, вот так можно по 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; Чтобы восстановить: ClipCursor(NULL);https://delphiworld.narod.ru/
DelphiWorld 6.0