Якщо вам потрібно обмежити область пересування миші по екрану, використовуйте наступний код:
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
Заключає курсор у рамки Rect. Якщо Rect має значення nil, то курсор є необмеженим.
Опис
procedure ClipCursor(Rect: TRect);
Параметри
Rect: Обмежуючий TRect в кооpдинатах экpану.
