{Pour déplacer tous les composants héritants de TWinControl (fenêtrés):
TForm, TButton, TEdit, TComboBox, TListbox ... etc. etc.
*** n'oubliez pas d'affecter FormMouseMove à tous les composants que vous voulez déplacer
par l'intermédiaire de l'inspecteur d'objets}
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if (ssLeft in Shift) and (Sender is TWinControl) then
if ReleaseCapture then
TWinControl(Sender).Perform(WM_SYSCOMMAND, SC_MOVE or HTCAPTION, 0);
end;
{Pour déplacer tous les autres composants (non fenêtrés):
TImage, TLabel ... ici un TImage}
var iX, iY : Integer;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
begin
iX := X;
iY := Y;
end;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if ssLeft in Shift then
begin
Image1.Left := Image1.Left + X - iX;
Image1.Top := Image1.Top + Y - iY;
end;
end;