Hola bulc.
Fijate si te sirve este ejemplo (basado en el hilo:
Mover TSpeedButton en Runtime):
Código Delphi
[-]
...
implementation
var
ori: TPoint;
CtrlPress: Boolean = False;
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.BringToFront;
Image2.BringToFront;
DoubleBuffered:= True;
end;
procedure TForm1.ImageMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ori:= Point( X, Y );
CtrlPress:= ssCtrl in Shift;
end;
procedure TForm1.ImageMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
if CtrlPress then
with TImage(Sender) do
begin
Left := X - ori.X + Left;
Top := Y - ori.Y + Top;
end;
end;
procedure TForm1.ImageMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
CtrlPress:= False;
end;
no olvides asignar los eventos ImageMouseDown, ImageMouseMove e ImageMouseUp a los eventos correspondientes de cada uno de los
TImage que utilices.
Saludos