Как ограничить движения мышки определённой областью?

Previous  Top  Next

    
 

 

Для этого можно воспользоваться API функцией ClipCursor(). Например, можно вставить следующий код в обработчик события формы OnMouseDown:

ClipCursor(&BoundsRect);

 

а следующий код в обработчик события формы OnMouseUp:

ClipCursor(NULL);

 

Если нажать кнопку мыши на форме и удерживать её, то курсор мышки не сможет покинуть пределы формы.

 

©Drkb::01588

Взято из http://forum.sources.ru

 

 

Сначала определяете ограничивающий прямоугольник, затем используете функцию ClipCursor(), передав ей в качестве параметра указатель на этот прямоугольник. Например, вот так можно по 100 пикселей скостить по краям экрана:

 

Code:

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);

 

 

 

©Drkb::01589

http://delphiworld.narod.ru/

DelphiWorld 6.0