在mousemove事件里判断鼠标位置然后改控件位置。。。。。
比如speetbutton。。。。
var
oldp:Tpoint;
procedure TForm1.SpeedButton1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
p:Tpoint;
begin
if ssLeft in shift then
begin
SpeedButton1.Top:=SpeedButton1.Top+y-oldp.y;
SpeedButton1.Left:=SpeedButton1.Left+x-oldp.X;
end;
end;
procedure TForm1.SpeedButton1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
oldp.X:=x;
oldp.Y:=y;
end;