for i:=0 to form1.ControlCount-1 do
  aa:=form1.Controls(i).left
  ....
循环将你的全部控件的位置如index,left,top,width,height保存在数据库或文件
在Tform.OnCreate事件中重新指定每一个控件的left,top,width,height
for i:=0 to 控件总数-1 do
   form1.Controls(i).left:=读出地数
...
用每一个控件的OnDragDrop事件相应用户对控件的改变