Moving components at runtime

On the mousedown event of the windowed control add the 2 lines

  ReleaseCapture; //this released the mouse function to Windows
  SendMessage(TWinControl(sender).handle, WM_SYSCOMMAND, $F012, 0);

what this does is tell Windows that this control is moving and windows takes over
from there. $F012 is the address of the moving command. Inprise never created a name for it.
If it had, it would have been SC_MOVING to corospond with the rest of the SC commands.

The final 0 represents a paramater that is not necessary.