Comment déplacer un composant TImage avec la souris lors de l'éxecutio

Signaler
Messages postés
38
Date d'inscription
jeudi 8 août 2002
Statut
Membre
Dernière intervention
26 août 2004
-
Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
-
Comment déplacer un composant TImage avec la souris lors de l'éxecution de l'application????
J'ai une source pour déplacer un composant avec la souris, cela marche a peu res avec tout mais pas avec des composants du style TImage, TLabel etc...
Voici la source:
// Pour deplacer un element avec la souris
{Ajouter un composant TPanel a l'application}

procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
const
SC_DragMove = $F014;
begin
if ssLeft in Shift then begin
ReleaseCapture;
Tcontrol(Sender).perform(WM_SysCommand, SC_DragMove, 0);
end;
end;

Voila aidez moi svp!!!

1 réponse

Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
2
La méthode que tu donnes ne fonctionne qu'avec les contrôles Windows. Donc effectivement avec TLabel, TImage mais aussi TSpeedBtn ce n'est pas possible. Il faut alors le faire à la main avec les événements OnMouseDown et OnMouseMove :

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image1.Tag := x + y Shl 16;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
If ssLeft In Shift
Then Begin
Image1.Left := Image1.Left + X - (Image1.Tag And $FFFF);
Image1.Top := Image1.Top + Y - (Image1.Tag Shr 16);
End;
end;

--- :sleepy) Nono du Moulin :sleepy) ---