Это мой код ... curX и curY - мои текущие координаты X и Y, в то время как tmpX и tmpY - относительные значения X и Y (насколько мышь переместилась).
curX:= curX+tmpX;
curY:= curY+tmpY;
Я использую эти значения для перемещения / управления моей форме курсора.
Как сохранить курсоры на экране?
Я пытался ограничить значения до Screen.Height и Screen.Width ... вот код.
if(curX>Screen.Width) then
curX:=Screen.Width;
if(curY>Screen.Height) then
curY:=Screen.Height;
но это не сработало.
Решено! (вроде):
curX:= max(0, min((curX+tmpX), Screen.Width));
curY:= max(0, min((curY+tmpY), Screen.Height));
Единственная проблема, с которой я столкнулся, заключается в том, что (0,0), по-видимому, не является самой верхней левой частью (очень близко, хотя, думаю, всего на пару пикселей), а (Screen.Width, Screen.Height) не является верхней самый правый (также близко, курсор исчезает в самом правом, хотя я думаю, что один должен вести себя так).