IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

[DragQueryFile] Explication sur les paramètres


Sujet :

API, COM et SDKs Delphi

  1. #1
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut [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 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

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    UINT (Unsigned Integer) = LongWord = Cardinal = 32 Bit non signé.

    Quant aux fonctions Pred et Succ, personnellement je les utilise avec des ensembles.
    Sinon avec des integers j'utilise plutot Inc et Dec.

    [EDIT]
    Les 2 écritures changent elles quelque chose par exemple coté performance ?
    Je crois savoir que par exemple Inc est plus rapide que I := I + 1.

    @+ Claudius

  3. #3
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Merci de ta réponse!

    UINT me faisait penser à unsigned int du C++ mais j'étais pas sûr.
    Chose qui est maintenant faites

    Moi j'utilise jamais Inc et Dec! Idem pour Pred et Succ.

    Je ne sais pas si ça change quelque chose.
    Quand j'incrémente : i:=i+1
    Quand je décrémente : i:=i-1.

    C'est juste pour une question de lisibilité peut être ?

    EDIT:

    Post croisé

    Merci de ta réponse! Je l'utiliserai de plus en plus dans ce cas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [NTFS]explication sur les type de droits
    Par arnolem dans le forum Sécurité
    Réponses: 6
    Dernier message: 19/04/2006, 12h52
  2. Besoin d'explications sur les charset
    Par EGPMS dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 03/02/2006, 15h38
  3. [VB6]Question bête sur les paramètres optionels
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 17/10/2005, 20h33
  4. [RegEx] preg_replace : explications sur les caractères spéciaux
    Par Anduriel dans le forum Langage
    Réponses: 6
    Dernier message: 05/10/2005, 21h35
  5. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo