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

Langage Delphi Discussion :

Ouvrir automatiquement un fichier lorsqu'on le glisse sur le programme


Sujet :

Langage Delphi

  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Points : 238
    Points
    238
    Par défaut Ouvrir automatiquement un fichier lorsqu'on le glisse sur le programme
    Bonjour,

    Je me demandais comment était implémenté le fait de pouvoir glisser-déposer un fichier dans un programme, soit sur le .EXE (ce qui ouvre le programme et le fichier directement), soit en lâchant le fichier dans la fenêtre du programme.
    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    vers l'exe c'est simple, Windows invoque le programme ne passant le fichier en paramètre -> ParamStr(1) - voir aussi ParamCount

    vers une fenêtre c'est le Drag & Drop, j'ai une unité toute simple pour gérer cela
    http://tothpaul.free.fr/sources.php?tools.dropfiles

    elle date de Delphi 2 mais je pense qu'elle reste compatible...
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    dans ta classe qui reçoit les fichiers, il faut ajouter la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure WMDrop(var message: TWMDropFiles); message WM_DROPFILES;
    //appelé quand un fichier est déposé sur la fenêtre
     
    procedure CreateParams(var Params: TCreateParams); override;
     
     
    ...
     
    procedure TForm1.CreateParams(var Params: TCreateParams); override;
    begin
      Params.StyleEx := (Params.StyleEx or WS_EX_ACCEPTFILES);
    end;

  4. #4
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  5. #5
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Points : 238
    Points
    238
    Par défaut
    Merci pour vos réponses.

    J'ai encore juste un petit problème avec le fonction prise de la FAQ pour le drag & drop des fichiers :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      tailleDuBuffer:= MAX_PATH;
      SetLength(nomDuFichier, tailleDuBuffer);
    Ceci fait que la variable nomDuFichier contient effectivement le nom, mais suivi de plein de caractères incompréhensibles. Ce qui fait qu'un ExtractFileExt(nomDuFichier) me donne n'importe quoi par exemple.

    Sauriez-vous comment nettoyer le nom ou le redimensionner correctement ?

  6. #6
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Effectivement le code fourni dans la FAQ ne fonctionne pas très bien.
    Le nom de fichier renvoyer est suivi de pas mal de caractères bizarres.
    Par contre la methode de Paul TOTH fonctionne très bien.
    Merci Paul pour cette unité.

    A+
    On progresse .....

  7. #7
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Points : 238
    Points
    238
    Par défaut
    Très juste, la technique de Toth est également plus intéressante car elle permet de choisir le composant dans lequel on permet de dropper un fichier.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/08/2014, 17h46
  2. Ouvrir automatiquement un fichier depuis IE
    Par Arnard dans le forum Windows 7
    Réponses: 2
    Dernier message: 31/03/2011, 15h52
  3. Recuperer le fichier lorsque 'ouvrir avec'
    Par Loenix dans le forum Programmation multimédia/Jeux
    Réponses: 6
    Dernier message: 19/05/2009, 19h12
  4. Ouvrir automatiquement un formulaire à l'ouverture d'un fichier Excel
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/03/2008, 15h50
  5. Ouvrir automatiquement un fichier texte à la fin d'un calcul
    Par _Pendragon_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 05/09/2007, 16h11

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