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 :

initiation à l'utilisation TTreeView


Sujet :

C++Builder

  1. #1
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut initiation à l'utilisation TTreeView
    Bonjour,
    Je cherche à faire un affichage de l'arborescence de mes disques dur dans un TreeView... J'ai cherché sur le forum mais je n'ai pas vraiment trouvé ce que je voulais...
    Ce que je souhaiterais obtenir c'est une affichage qui ressemblerais un peut à l'explorateur de Windows, avec la racine des disques à la bases puis ouvrir le dossier que je veux lorsque je clique dessus.
    Mon problème c'est que je ne sais pas du tout comment m'y prendre, car je n'ai jamais utilisé ce composant.

    Merci par avance pour votre aide
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2006
    Messages : 385
    Points : 288
    Points
    288
    Par défaut
    salut,
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
     
        #include <dirent.h> 
        #include <sys\stat.h> 
     
        #define REPERTOIRE
     
     
        0
     
     
        // Indice dans la liste des images
     
        #define FICHIER
     
     
        1
     
     
        // Indice dans la liste des images
        int __fastcall TfwMenu::CreationArbre(const AnsiString csDisquePar)
     
            { 
            DIR *dir; 
            struct dirent *ent; 
            struct stat statbuf; 
            AnsiString csFichier,csNomFichier; 
            TTreeNode * pNode; 
     
     
                Arbre->Items->Clear(); // On vide le TTreView Arbre 
                Arbre->SortType = stNone; // Pas de tri sur l'arbre 
                if ((dir = opendir(csDisquePar.c_str())) == NULL)
     
     
                    return -1; //Impossible d'ouvrir 
     
                while ((ent = readdir(dir)) != NULL)
     
                    { 
                    csFichier = csDisquePar; 
                    csFichier += ent->d_name; 
                    if (stat(csFichier.c_str(),&statbuf) != 0)
     
     
                        return -3; // Pas d'information 
     
                    csNomFichier = ent->d_name; 
                    if (statbuf.st_mode & S_IFDIR)
     
                        { 
                        pNode = Arbre->Items->Add(NULL,csNomFichier); 
                        pNode->ImageIndex = REPERTOIRE; 
                        AfficherRepertoire(csFichier,pNode); 
                        } 
     
                    if (statbuf.st_mode & S_IFREG)
     
                        { 
                        pNode = Arbre->Items->Add(NULL,csNomFichier); 
                        pNode->ImageIndex = FICHIER; 
                        } 
     
                    }// Fin du while 
     
                if (closedir(dir) != 0)
     
     
                    return -2; // Impossible de fermer 
     
                return 0; // Valeur par defaut 
     
            } 
     
     
        int __fastcall TfwMenu::AfficherRepertoire(const AnsiString csRepertoirePar,TTreeNode * pNodePar)
     
            { 
            DIR *dir; 
            struct dirent *ent; 
            struct stat statbuf; 
            AnsiString csFichier,csNomFichier; 
     
            TTreeNode * pNode;
            if ((dir = opendir(csRepertoirePar.c_str())) == NULL)
     
     
                return -1; //Impossible d'ouvrir 
     
            while ((ent = readdir(dir)) != NULL)
     
                { 
                // Constitution du chemin du fichier 
                csFichier = csRepertoirePar; 
                csFichier += "\\"; 
                csFichier += ent->d_name; 
                if (stat(csFichier.c_str(),&statbuf) != 0)
     
     
                    return -3; // Pas d'information 
     
                csNomFichier = ent->d_name; 
                if (csNomFichier == ".") continue; 
                if (csNomFichier == "..") continue; 
                if (statbuf.st_mode & S_IFDIR)
     
                    { 
                    pNode = Arbre->Items->AddChild(pNodePar,csNomFichier); 
                    pNode->ImageIndex = REPERTOIRE; 
                    AfficherRepertoire(csFichier,pNode); // Récursivité 
                    } 
     
                if (statbuf.st_mode & S_IFREG)
     
                    { 
                    pNode = Arbre->Items->AddChild(pNodePar,csNomFichier); 
                    pNode->ImageIndex = FICHIER; 
                    } 
     
                }// Fin du while 
     
            if (closedir(dir) != 0)
     
     
                return -2; // Impossible de fermer 
     
            return 0; // Valeur par defaut 
     
        }
    bonne chance
    « Aucun homme ne peut rien vous révéler sinon ce qui repose déjà à demi endormi dans l'aube de votre connaissance»

    « No man can reveal to you aught but that which already lies half asleep in the dawning of your knowledge »_(¯`·.__-Alg3ri4nH4ck3r-__.·´¯)_

  3. #3
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    A quoi correspond le REPERTOIRE et le FICHIER??
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/06/2009, 10h29
  2. Réponses: 2
    Dernier message: 19/05/2009, 17h22
  3. [Débutant] Utilisation TTreeView
    Par [R] dans le forum C++Builder
    Réponses: 5
    Dernier message: 17/01/2006, 17h24

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