Comment déplacer un composant TImage avec la souris lors de l'éxecutio
MasterNKZ
Messages postés38Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention26 août 2004
-
12 août 2002 à 13:17
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 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;
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 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;