Bonjour,
Je ne sais pas où poster ce topic, si c'est dans langage ou dans API donc je mets permet de le déposer ici.
J'ai vu dans la FAQ l'utilisation de DragQueryFile grâce à l'unité ShellAPI.
Bien que j'ai compris le fonctionnement général, j'ai quelques interrogations!
Voici le code avant tout :
Code FAQ : 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 procedure TForm1.WM_DropFiles(var Msg: TMessage); var hDeposer: THandle; countFiles, i: integer; FileName: Array[0..255]Of Char; begin //Récupérer dans hDeposer le handle envoyé par le message WM_DROPFILES hDeposer := THandle(Msg.wParam); //Compter le nombre de fichiers déposés. countFiles := DragQueryFile(hDeposer, UINT(-1), nil, 0); for i := 0 to pred(countFiles) do begin //Déterminer le nom du ième fichier déposé DragQueryFile(hDeposer, i, FileName, 255); //Ajouter le nom du fichier dans le listbox ListBox1.Items.Add(FileName); end; //Indiquer à Windows la fin du déposer DragFinish(hDeposer); end;
Pour cette ligne :
On récupère le nombre de "fichiers" qui vont subir le drag and drop si j'ai bien compris.
Code : Sélectionner tout - Visualiser dans une fenêtre à part countFiles := DragQueryFile(hDeposer, UINT(-1), nil, 0);
Par contre, j'ai pas compris c'est : UINT(-1). Qu'est ce que UINT ? Je n'ai pas trouvé l'info dessus
Aussi, pour la fonction pred(), j'ai un peu de mal pour l'intéprétation :
Voici ce que dit l'aide de Delphi :
Donc si j'ai compris, ça revient à faire ceci :Envoyé par Aide Delphi
Les 2 écritures changent elles quelque chose par exemple coté performance ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part for i := 0 to countFiles-1 do
Merci de votre aide
Cordialement
Partager