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

Composants VCL Delphi Discussion :

Comment faire un Drag&Drop vers Windows ?


Sujet :

Composants VCL Delphi

  1. #1
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 685
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 685
    Points : 7 151
    Points
    7 151
    Par défaut Comment faire un Drag&Drop vers Windows ?
    Comment faire un Drag&Drop, à partir de mon application (un ListBox) vers Windows (Bureau ou explorateur) ?

    J'ai trouvé comment faire l'inverse, mais dans ce sens, je ne vois pas comment faire.
    Si quelqu'un a une idée ...
    Merci.


  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    Je crois qu'il faut regarder du côté de DoDragDrop (API Windows), mais je n'ai pas eu l'occasion de le faire, et impossible de faire une recherche sur le forum en ce moment !
    Bonne chance

  3. #3
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 685
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 685
    Points : 7 151
    Points
    7 151
    Par défaut
    Citation Envoyé par joebarthib
    Je crois qu'il faut regarder du côté de DoDragDrop (API Windows)
    Merci, je cherche dans cette direction.

    Citation Envoyé par joebarthib
    impossible de faire une recherche sur le forum en ce moment !
    C'est de plus en plus souvent !

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 66
    Points : 129
    Points
    129
    Par défaut
    J'ai trouvé ce lien :
    http://delphi.about.com/gi/dynamic/offsite.htm?site=http://atlas.csd.net/%7Ecgadd/knowbase/DELPHI0213.HTM

    A+

  5. #5
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 685
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 685
    Points : 7 151
    Points
    7 151
    Par défaut
    Bin, c'est bien la même question que moi, mais la réponse ne porte que sur le drag&drop Windows-->Application.
    Moi, c'est l'inverse que je cherche.
    Merci quand même. Je continu de chercher ...


  6. #6
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 66
    Points : 129
    Points
    129
    Par défaut
    Au fait, j'ai du mal à imaginer ce que peux donner un Drag'n Drop d'un Listbox vers le Bureau Windows.
    Au pire, tu ferais une copie de fichier que tu mettrais directement sur le Desktop (au lieu de mettre un raccourci) je comprendrais.
    Quand tu auras le temps, tu pourrais nous en expliquer l'utilité ?

    A+ et bonne recherche...

  7. #7
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 685
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 685
    Points : 7 151
    Points
    7 151
    Par défaut
    Bin, dans ma ListBox, j'ai une liste de fichiers, affichée.
    Ces fichiers sont stockés sur un serveur.
    Je voudrais que quand l'utilisateur fait un drag-drop sur un des fichiers de la liste, ca copie le fichier où il fait le drop : le bureau, un répertoire dans une fenêtre de l'explorateur, ...
    Je ne peux pas savoir d'avance, dans quel répertoire copier le fichier. Donc, par la méthode du drag-drop, je pensais que se serais possible.
    On m'a donné une piste, ici : http://www.phidels.com/php/forum/for...t&postid=15858

    Mais, je ne trouve aucun exemple, ni explications ...

    Je cherche toujours ...

  8. #8
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 66
    Points : 129
    Points
    129
    Par défaut
    Par le ClipBoard, ça doit être plus facile.
    Mais il n'est pas dit que ça marche dans tous les cas.
    Maintenant que j'y pense, il me semble que j'ai déjà vu un sujet traitant de la copie (via le Clipboard) sur le Desktop : peut-être même sur le forum !?

    A+

  9. #9
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 685
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 685
    Points : 7 151
    Points
    7 151
    Par défaut
    Je ne vois pas le rapport avec le presse-papier !?

    Tu ne pourais pas m'en dire un peu plus ...


  10. #10
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 66
    Points : 129
    Points
    129
    Par défaut
    Ce que je voulais dire, c'est que tu peux coller le nom des fichiers à copier dans le clipboard et les récupérer plus tard pour faire une simple copie de fichiers, sans drag'n drop.

    Le code suivant peut sans doute expliciter cette idée :
    Code : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
     Get Filenames from Clipboard 
    {
    "If I use the windows Explorer to copy a file,
    how can I use a paste function in my app?"
     
    This code retrieves the filenames from the
    clipboard to a memo component.
    Drop a memo and a button on a form and set
    the OnClick of a button to:
    } 
     
    uses 
      clipbrd, shellapi; 
     
    procedure TForm1.Button1Click(Sender: TObject); 
    var 
      f: THandle; 
      buffer: Array [0..MAX_PATH] of Char; 
      i, numFiles: Integer; 
    begin 
      Clipboard.Open; 
      try 
        f:= Clipboard.GetAsHandle( CF_HDROP ); 
        If f <> 0 Then Begin 
          numFiles := DragQueryFile( f, $FFFFFFFF, nil, 0 ); 
          memo1.Clear; 
          for i:= 0 to numfiles - 1 do begin 
            buffer[0] := #0; 
            DragQueryFile( f, i, buffer, sizeof(buffer)); 
            memo1.lines.add( buffer ); 
          end; 
        end; 
      finally 
        Clipboard.close; 
      end; 
    end;
    A+

  11. #11
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 685
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 685
    Points : 7 151
    Points
    7 151
    Par défaut
    Hmm !

    En attendant de trouver une solution (si j'en trouve une ), je vais utiliser une boîte de dialogue pour demander à l'utilisateur où il veut enregistrer ses fichiers. Et comme ca, je saurais où faire ma copie.

    Mais, un Drag&drop aurait été mieux ... ! Je suis toujours preneur de toutes idées ...


  12. #12
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 685
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 685
    Points : 7 151
    Points
    7 151
    Par défaut
    Une nouvelle piste (qui rejoint les précédentes) :

    Citation Envoyé par gatorette
    La réponse Microsoft est ici : http://msdn.microsoft.com/library/de...g/transfer.asp

    En gros il faut utiliser des objets COM et appeler une fonction ("DoDragDrop").

    Après, le faire en Delphi, je sais pas...

  13. #13
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    J'ai trouvé une série d'articles assez complète sur le sujet sur http://www.undu.com (chercher les articles intitulés "COM Interface-Based Drag and Drop").

  14. #14
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 685
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 685
    Points : 7 151
    Points
    7 151
    Par défaut
    Merci. Je regarde ...


  15. #15
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 685
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 685
    Points : 7 151
    Points
    7 151
    Par défaut
    Bin, c'est intéressant, mais je ne comprend pas tout.
    Ce qui est dommage, c'est que tous les exemples de démo que j'ai testé pour comprendre, ont des violations d'accès parce qu'il manque des fichiers.
    A quoi ca sert de donner des moitiés de projet ? :


  16. #16
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 685
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 685
    Points : 7 151
    Points
    7 151
    Par défaut
    Ca y est : il y a 4 super composants sur http://www.phidels.com qui ont l'air de marcher pas mal !

    Voir : http://www.phidels.com/php/forum/for...t&postid=15858


  17. #17
    Membre actif Avatar de remixtech
    Profil pro
    Enseignant
    Inscrit en
    Février 2003
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2003
    Messages : 272
    Points : 214
    Points
    214
    Par défaut Sniff
    Fonctionne en WinXP et Win2000. Ne fonctionne pas actuellement en Win98 mais c'est par manque de temps. Si quelqu'un se penche sur la question, on est preneur.

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    Regarde la: http://wideman-one.com/gw/tech/Delphi/dragdrop/

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

Discussions similaires

  1. Comment faire du drag and drop dans un Listbox
    Par jca dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 08/02/2013, 21h54
  2. Réponses: 4
    Dernier message: 25/01/2005, 23h14
  3. Faire un drag and drop depuis IE vers un TListView
    Par ALEX77 dans le forum Composants VCL
    Réponses: 8
    Dernier message: 11/11/2004, 16h27
  4. Comment faire un Drag&Drop d'un TListBox vers un TDbCtrlGrid ?
    Par claude dans le forum Composants VCL
    Réponses: 3
    Dernier message: 30/06/2004, 15h08
  5. Comment faire un Drag&Drop sur un tableau
    Par Stef.web dans le forum Composants VCL
    Réponses: 6
    Dernier message: 11/10/2003, 14h12

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