Déplacer un objet dans un formulaire

Contenu du snippet

{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;


Compatibilité : Delphi 5

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.