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.
Comme je veux limiter la zone de drag and drop à ma listView je fais ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part DragAcceptFiles(Handle,true);
je passe le handle de ma ListView comme ceci
le programme n'intercepte pas le message windows du drop.
Code : Sélectionner tout - Visualiser dans une fenêtre à part DragAcceptFiles(ListView.Handle,true);
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);
Partager