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

C++Builder Discussion :

SelectDirectory() avec visualisation des fichiers


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    229
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 229
    Par d�faut SelectDirectory() avec visualisation des fichiers
    Bonjour,

    j'utilise builder 6 et la fonction SelectDirectory() pour s�lectionner un r�pertoire.
    J'aimerai que lors de la navigation dans les r�pertoires on puisse voir les fichiers contenus sous les r�pertoires...
    Est ce possible ?

    merci !
    Pascale38

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par d�faut
    Pourquoi ne ps utiliser un TOpenDialog pour voir les fichiers (onglet Dialogue de la palette des composants)?

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    229
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 229
    Par d�faut
    Parce que ce dont j'ai besoin c'est de s�lectionner un r�pertoire et OpenDialog ne le permet pas (� ma connaissance en tout cas)
    OpenDialog-> s�lection de fichiers
    SelectDirectory-> s�lection de r�pertoire mais on ne voit pas les fichiers contenus sous les r�pertoires...

    Bref il me faudrait un mix des 2

    merci,
    Pascale38

  4. #4
    Membre �clair�
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    481
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 481
    Par d�faut
    Il est possible avec OpenDialog de s�lectionner un fichier.
    Il suffit ensuite d'en extraire le chemin :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    extern PACKAGE AnsiString __fastcall ExtractFileDir(const AnsiString FileName);

  5. #5
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut
    Salut Pascale38
    Si c'est un explorateur type window tu peux utiliser des composants
    Sur la Form un TDriveComboBox, un TDirectoryListBox, un TFileListBox
    Dans DriveComboBox1 renseigner DirList avec "DirectoryListBox1"
    Dans DirectoryListBox1 renseigner FileList avec "FileListBox1"

  6. #6
    Membre �m�rite Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    890
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 890
    Par d�faut
    Tu peux aussi utiliser directement l'API Windows SHBrowseForFolder avec l'option BIF_BROWSEINCLUDEFILES.

  7. #7
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut
    Tu peux utiliser l'option sdShowFiles avec SelectDirectory:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        String Caption = "Sélectionne quelque chose:";
        const String Root = "";
        String Directory = "C:\\Program Files\\";
        TSelectDirExtOpts Options = TSelectDirExtOpts() << sdNewUI << sdShowFiles;
     
        if(SelectDirectory(Caption, Root, Directory, Options))
        {
            // Quelque chose doit aller ici
        }
    Pour la m�thode de 10_GOTO_10, tu peux aller voir la FAQ.

  8. #8
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    229
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 229
    Par d�faut
    ouahhhh super !!
    merci pour toutes ces r�ponses !

    Alors en r�ponse � crayon :
    j'ai l'impression que cette option et la forme de la fonction SelectDirectory que tu me proposes n'existe pas dans Builder 6...
    [C++ Error] Restore.cpp(30): E2451 Undefined symbol 'TSelectDirExtOpts'
    [C++ Error] Restore.cpp(30): E2451 Undefined symbol 'sdNewUI'
    [C++ Error] Restore.cpp(30): E2451 Undefined symbol 'sdShowFiles'
    [C++ Error] Restore.cpp(32): E2285 Could not find a match for 'SelectDirectory(AnsiString,const AnsiString,AnsiString,TSelectDirOpts)'

    En r�ponse � 10_GOTO_10 :
    arghhhh ....
    Je vais essayer l'id�e de Blondelle

    encore merci !!
    Pascale38

  9. #9
    Expert �minent
    Avatar de ShaiLeTroll
    Homme Profil pro
    D�veloppeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur C++\Delphi
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par d�faut
    SelectDirectory existe sous deux formes !
    La 1ere est une simple arborescence
    La 2nde est d�j� une composition de TDriveComboBox, un TDirectoryListBox, un TFileListBox regroup� dans la Forme TSelectDirDlg, j'avais repris le code en Delphi pour �crire une variante autorisant la s�lection d'un dossier seulement si celui ci contenait des fichiers selon un filtre !
    Pascale38, v�rifie les deux formes d'appel, les param�tres sont diff�rents, c'est celle avec Directory en 1er Param�tre !

    Attention, la seconde forme, est de moins en moins pertinente, sous vista, par exemple les lecteurs r�seau n'apparaissent plus !

    OpenDialog permet aussi de s�lectionner un Dossier avec un peu de ruse comme dans "Fiche de s�lection de r�pertoire avan��e"
    Mais surtout, voir la MSDN Open and Save As Dialog Boxes, avec un peu de courage, on peut surcharger la WndProc et intercepter WM_NOTIFY avec lorsque "OFNOTIFY->hdr == CDN_FOLDERCHANGE"
    Aide via F1 - FAQ - Guide du d�veloppeur Delphi devant un probl�me - Pensez-y !
    Attention Troll M�chant !
    "Quand un homme a faim, mieux vaut lui apprendre � p�cher que de lui donner un poisson" Confucius
    Mieux vaut se taire et para�tre idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la m�diocrit� !

    L'exp�rience, c'est le nom que chacun donne � ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  10. #10
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    229
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 229
    Par d�faut
    oui mais la seconde forme de SelectDirectory prend en 2�me param�tre TSelectDirOpts et dans le choix des options il n'y a pas d'option pour afficher les fichiers...

    Bon sinon le TDirectoryListBox li� � une TFileListBox pourrait faire l'affaire...
    sauf que seul un seul lecteur apparait !!! ??? Je ne peux pas naviguer dans les diff�rents lecteurs...

    bon je continue � investiguer...

    merci encore !
    Pascale38

  11. #11
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut
    Tu doit associer un TDriveComboBox pour selectionner un lecteur

  12. #12
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    229
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 229
    Par d�faut
    oui je viens de voir �a !!
    Bon �a marche nickel !!
    Mais c'est bizarre quand m�me comme solution, un peu lourd non???
    D�composer la recherche dans 3 composants, quelle dr�le d'id�e !!

    Pourquoi faire simple quand on peut faire compliquer....

    Merci � tous en tout cas !
    Pascale38

  13. #13
    Expert �minent
    Avatar de ShaiLeTroll
    Homme Profil pro
    D�veloppeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur C++\Delphi
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par d�faut
    Citation Envoy� par Pascale38 Voir le message
    oui mais la seconde forme de SelectDirectory prend en 2�me param�tre TSelectDirOpts et dans le choix des options il n'y a pas d'option pour afficher les fichiers...
    Je ne comprends pas ton probl�me

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
      AnsiString Directory = "";
      SelectDirectory(Directory, TSelectDirOpts(), 0); // Utilise cette variante !
      SelectDirectory("Hey !", "", Directory); // Variante différente entre BCB6 et 2007
    Si la combinaison Old School DriveCombo\DirectoryList\FileList te convient, pourquoi ne pas utiliser la variante ad�quate de SelectDirectory, par d�faut cette variante affiche les fichiers, pas besoins d'options suppl�mentaires !
    Images attach�es Images attach�es  
    Aide via F1 - FAQ - Guide du d�veloppeur Delphi devant un probl�me - Pensez-y !
    Attention Troll M�chant !
    "Quand un homme a faim, mieux vaut lui apprendre � p�cher que de lui donner un poisson" Confucius
    Mieux vaut se taire et para�tre idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la m�diocrit� !

    L'exp�rience, c'est le nom que chacun donne � ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  14. #14
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    229
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 229
    Par d�faut
    ok oui �a marche tr�s bien !!
    je n'avais effectivement pas compris, j'essayais de lui pr�ciser "sdShowFiles" dans les options et �a marchait pas...

    Bon ben c'est super merci beaucoup !!!
    Pascale38

  15. #15
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut
    Pour ceux qui poss�de une version plus r�cente de C++Builder. Il existe une classe qui se nomme TFileOpenDialog qui poss�de dans sa propri�t� Options une valeur fdoPickFolders. Elle sert � choisir des dossiers � la place de fichiers.

    Malheureusement, TFileOpenDialog n'est support� que depuis Windows Vista car elle utilise l'interface IFileOpenDialog. En plus, lorsque fdoPickFolders est s�lectionn� les fichiers ne sont pas affich�s.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [DTD] utiliser avec JAVA des fichiers DTD pour v�rifier la validit� des fichiers XML
    Par Balbuzard dans le forum Format d'�change (XML, JSON...)
    R�ponses: 1
    Dernier message: 20/04/2009, 12h10
  2. R�ponses: 2
    Dernier message: 16/01/2009, 11h04
  3. Selection dossier avec visu des fichiers
    Par tAKAmAkA dans le forum IHM
    R�ponses: 1
    Dernier message: 30/11/2008, 17h00
  4. Batch de copie avec tri des fichiers
    Par zoozbiro dans le forum Scripts/Batch
    R�ponses: 8
    Dernier message: 05/11/2008, 13h59
  5. [E-03] ListBox avec liste des fichiers d'un dossier
    Par Daejung dans le forum Macros et VBA Excel
    R�ponses: 6
    Dernier message: 01/11/2008, 01h43

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