[DragQueryFile] Explication sur les paramètres
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:
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:
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:
for i := 0 to countFiles-1 do
Les 2 écritures changent elles quelque chose par exemple coté performance ?
Merci de votre aide
Cordialement