Mouse.CursorPos ist relativ zur linken oberen Ecke des Desktops, das Zeichnen passiert aber relativ zur linken oberen Ecke der Form. Man muss die Position also "umrechnen", und das übernimmt ScreenToClient.
Delphi-Quellcode:
posx := ScreenToClient(Mouse.CursorPos).X;
posy := ScreenToClient(Mouse.CursorPos).Y;