Delphi - Egér mozgási területének korlátozása

forráskód letöltése
Ha valamilyen oknál fogva korlátozni szeretnénk az egér mozgási területét, akkor ezt a mellékelt példaprogram alapján könnyedén megtehetjük.

Így például elérhetjük azt, hogy a felhasználó az egeret a képernyőnek csupán egy általunk meghatározott területén legyen képes mozgatni. Ha valamilyen oknál fogva korlátozni szeretnénk az egér mozgási területét, akkor ezt a mellékelt példaprogram alapján könnyedén megtehetjük.

Így például elérhetjük azt, hogy a felhasználó az egeret a képernyőnek csupán egy általunk meghatározott területén legyen képes mozgatni.


Ehhez a ClipCursor függvényt kell meghívnunk, paraméterként átadva a téglalap koordinátáit, melyben engedélyezzük az egér mozgását. Ez a paraméter TRect típusú. Fontos tudnivaló, hogy a koordinátákat a képernyő koordináta rendszerében kell megadnunk és nem az aktuális ablak koordináta rendszerében. Ezt a koordináta konverziót a ClientToScreen függvénnyel elvégezhetjük.

Ezen felül még célszerű, ha az egér kurzort rögtön erre a területre mozgatjuk a SetCursorPos függvény hívásával.

Ha a ClipCursor függvényt nil paraméterrel hívjuk, akkor ez törli a korlátozást és ettől kezdve az egér ismét a teljes képernyőn használhatóvá válik. Ezt a mellékelt példaprogramban az ESC billentyű lenyomásához kötöttük.

Ha ezt a funkciót használjuk a programunkban, akkor a program bezárásakor feltétlenül szüntessük meg a korlátozást, mivel ez az egész rendszerre vonatkozik, így kilépés után is megmaradna. Ehhez célszerűen az OnDestroy eseményt használhatjuk fel, mely akkor jön létre mikor a programunk futása leáll.

Mellékelt példában még felhasználtuk a Form OnPaint eseményét, hogy kirajzoljuk azt a területet, amelyet korlátozni szeretnénk.