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

Delphi Discussion :

Drag Drop récupérer le chemin d'un pdf


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 46
    Par défaut Drag Drop récupérer le chemin d'un pdf
    Bonjour, après avoir consulté de nombreux exemple sur internet, dont celui çi : http://delphidabbler.com/articles?article=11
    Je veux récupérer le chemin d'un fichier en le faisant glisser sur le listview, mais dans ces exemples, que j'ai essayé, aucun de marche en faisant glisser. Je voulais savoir si vous pouviez tester et me dire si cela marche, ou comment faire pour obtenir le chemin en glissant un fichier.
    Je me demande si sa ne marche pas à cause de mon Windows8.1 ou de delphi XE7? help me plz

  2. #2
    Membre Expert

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Par défaut
    Bonjour.

    Voici le code que j'ai utilisé dans un programme (Delphi 7) et qui fonctionne parfaitement sous Windows 8.1.
    Il récupère dans un listbox le ou les fichiers glissés.
    Si tu n'as pas de message d'erreur à la compilation, je ne vois pas pourquoi XE7 serait en cause. (Petite adaptation à faire pour les noms de fichiers, puisque, à ma connaissance, XE7 n'utilise plus le jeu de caractères Ansi).

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    unit Unit1;
     
    interface
     uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, StdCtrls, ShellApi; 
    type 
       TForm1 = class(TForm)
           ListBox1: TListBox;
           procedure FormCreate(Sender: TObject);
           procedure FormClose(Sender: TObject; var Action: TCloseAction);
       private
           procedure WMDropFiles(var msg : TWMDropFiles) ; message WM_DROPFILES; 
       public
       end; 
     
    var   
       Form1: TForm1;
     
    implementation
     {$R *.dfm}
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin   
        DragAcceptFiles(ListBox1.Handle, true);
    end;
     
    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
       DragAcceptFiles(ListBox1.Handle, false);
    end;
     
    procedure TForm1.WMDROPFILES(var Msg: TWMDropFiles);
    const
       MAXFILESIZE = 32767;
    var 
       FileName: PChar;
       I, NbFiles: integer;
    begin
       try      
           NbFiles := DragQueryFile(Msg.Drop, $FFFFFFFF, nil, 0);
           for I := 0 to NbFiles - 1 do  
           begin
               GetMem(FileName, MAXFILESIZE);          
               DragQueryFile(Msg.drop, I, FileName, MAXFILESIZE);
               ListBox1.Items.Add(string(Filename)); // Filename contient aussi le path
               FreeMem(FileName);
           end;
       finally
           DragFinish(Msg.drop);  
       end;
       Msg.Result:= 0;
    end;
    Cordialement
    Thierry

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 46
    Par défaut
    Merci, mais j'ai là aussi refais ton programme mais toujours quand je lache une fichier pdf sur le listbox, il ne se passe rien.

  4. #4
    Membre Expert

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Par défaut
    Bonjour.

    En exécutant le programme (contenant le code ci-dessus) en tant qu'administrateur : le drag and drop ne fonctionne plus.
    C'est donc une question d'UAC (User Account Control).

    Trouvé sur le forum Microsoft :

    A possible reason for the not being able to drag & drop files to the application could be UAC integrity level (IL). With UAC enabled in Vista or Win7, drag and drop is not allowed to happen from low IL process to high IL process by default. Please check whether your application is elevated (run as admin) when the problem happens.

    Il est possible que ton Delphi XE7 s'ouvre avec un haut privilège.

    As-tu essayé de lancer ton programme hors de l'EDI ?
    Option UAC dans XE7 ?

    Cordialement
    Thierry

Discussions similaires

  1. [Drag&drop]Récupérer l'élément déplacé
    Par Neckara dans le forum Qt
    Réponses: 5
    Dernier message: 11/01/2013, 21h31
  2. drag&drop récupérer le nom du drop
    Par jmatys dans le forum jQuery
    Réponses: 2
    Dernier message: 30/01/2012, 16h39
  3. Récupérer infos drag&drop avec jquery
    Par rreennaauudd dans le forum jQuery
    Réponses: 4
    Dernier message: 16/06/2009, 09h57
  4. Réponses: 1
    Dernier message: 12/04/2009, 22h58
  5. Pdf + composant en Drag & Drop
    Par BuzzLeclaire dans le forum Débuter
    Réponses: 0
    Dernier message: 20/10/2008, 14h46

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