bonjour,

mon code de drag n drop fonctionnel est pour l'image 3:



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
procedure TForm1.Image3MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
    { Cette procédure initialise le processus. Elle permet de déterminer s'il
    s'agit d'un simple Click ou du début d'un Drag'n drop }
begin
     Sliping := false;
     Image3.BeginDrag(false,3);{ false pour permettre de cliquer sans déplacer.
                              Ici, commence à glisser après mouvement de 3 pixels.}
  XsurLab := X;
  YsurLab := Y;
end;
 
procedure TForm1.Image3DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
{ Cette procédure permet d'éviter l'affreux glissement saccadé obtenu avec
    la méthode proposée par Borland dans l'aide en ligne }
begin
     Sliping := true;
     Image3.Left := Image3.Left + (X - XsurLab);
     Image3.Top :=  Image3.Top  + (Y - YsurLab);
end;
 
procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
  { Cette procédure permet d'éviter la "perte" du compo lors d'un mouvement très
    rapide de la souris }
begin
     Image3.Left := X - XsurLab;
     Image3.Top  := Y - YsurLab;
end;
 
procedure TForm1.Image3EndDrag(Sender, Target: TObject; X, Y: Integer);
  { Cette procédure permet d'effectuer l'action prévue lors du "OnClick" }
begin
       If Sliping = false then
       beep;
end;
par contre si je veux pouvoir utiliser cette fonction pour plusieur j'ai plusieur méthode, soit la réécrire soit créer des images a la volée, afin que mon code soit optimisé mon choix se port sur la 2e possibilité... bien que la création d'image a la volé ne soit pas tres dur je ne sais vraiment pas comment mettre en place cette fonction pour toutes les images :s

quelqu'un a une idée?