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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
countFiles := DragQueryFile(hDeposer, UINT(-1), nil, 0);
On récupère le nombre de "fichiers" qui vont subir le drag and drop si j'ai bien compris.
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 :

Citation Envoyé par Aide Delphi
Renvoie le prédécesseur de l'argument.
functionPred(X);

Description

X est une expression de type ordinal Delphi (Int64 inclus).Le résultat,de même type que X,est le prédécesseur de X.
Donc si j'ai compris, ça revient à faire ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 for i := 0 to countFiles-1 do
Les 2 écritures changent elles quelque chose par exemple coté performance ?

Merci de votre aide
Cordialement