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

MasterNKZ Messages postés 38 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 26 août 2004 - 12 août 2002 à 13:17
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 - 12 août 2002 à 19:55
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

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
12 août 2002 à 19:55
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) ---
0
Rejoignez-nous