Bonjour,

Je souhaite réaliser un drag and drop depuis l'explorateur windows vers un TListView.

Lorsque que je passe le handle de ma form contenant la ListView en paramètre à DragAcceptFiles comme ceci il n' y a pas de problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
DragAcceptFiles(Handle,true);
Comme je veux limiter la zone de drag and drop à ma listView je fais ceci:
je passe le handle de ma ListView comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
DragAcceptFiles(ListView.Handle,true);
le programme n'intercepte pas le message windows du drop.

Pourquoi?

Voici la fonction appelé lors du drop du fichier et sa déclaration
Code : Sélectionner tout - Visualiser dans une fenêtre à part
   procedure DragDrop(var msg: TWMDropFiles); message WM_DROPFILES;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure Form.DragDrop(var msg : TWMDropFiles);
var nom_fichier : array [0..500] of char;
    nb_fichier,i : integer;
begin
  //Récupération du nombre de fichier en cours de déplacement
  nb_fichier := DragQueryFile(msg.Drop,$FFFFFFFF,nom_fichier,sizeof(nom_fichier));
 
  for i:= 0 to nb_fichier - 1 do
  begin
    //Récupération du ième fichier
    DragQueryFile(msg.Drop,i,nom_fichier,sizeof(nom_fichier));
     ShowMessage('OK');
  end;
  DragFinish(msg.Drop);