
procedure TForm1.Button1MouseDown(Sender: 
TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: 
Integer);
const
  SC_DragMove 
= $F012;
begin
  Begin
   ReleaseCapture;
   Button1.perform(WM_SysCommand, 
SC_DragMove, 0);
  End;
end;原文:http://www.cnblogs.com/xe2011/p/3876206.html