Dear DavidN,
I think you can just use the focus property to select e.g. the image (image.focus=true when clicked) and then use the x and y of "mouse up" to get the new location on the form. Put the new x,y as e.g. the image.top and image.left.
If you want it to snap to a gridline you can construct your own using the integer values of a division (e.g. y=5*int(y/5) gives a grid line every 5th pixel).
This method does not show the intermediate steps however, so the control will be seen to jump from the present spot to where you perform the mouse up. Does this matter?
all the best, Björn