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

VB 6 et antérieur Discussion :

Explorer TreeView : Problème de Key


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 12
    Par défaut Explorer TreeView : Problème de Key
    Salut à tous,

    Je me suis mis en tête de réussir un TreeView comme celui de l'explorateur Windows.
    J'ai donc ma racine : "BUREAU" contenant mon "POSTE DE TRAVAIL", "MES DOCUMENTS", "VOISINAGE RESEAU" et les dossiers qu'il contient.

    Tout mes noeuds ont comme clé le chemin du dossier qu'ils représentent. Malheureusement je ne peut pas ouvrir à la fois un noeud ici de Mes documents et un noeud ici de documents & settings car j'obtiens le même clé.

    J'aimerais savoir si quelqu'un a une solution a mon problème, a part utiliser les tags car je les utilisent déja pour savoir si le noeuds a déja été parcouru.


    Merci de votre aide

  2. #2
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Salut

    Tu m'excuseras de répondre par des questions. C'est pour avoir plus de détails sur ton problème.

    On peut voir le bout de code qui pose problème ?

    As-tu regardé les tutoriels sur le treeView ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 12
    Par défaut
    J'ai en effet regarder le Tutoriel du TreeView mais je en trouve pas la solution a mon problème ... malheureusement !

    Concernant le code voici ma fonction qui ajoute des dossiers dans le TreeView :
    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
    Public Sub SearchFolders(ByVal Node As Node)
     
        '============================================================
        'Affiche les différents sous-dossiers présent dans un dossier
        '============================================================
     
        Dim SubFolder As folder 'Variable servant à parcourir tout les sous-dossiers
        Dim SubNode As Node     'Variable permettant l'ajout d'un nouveau noeud si nécéssaire
        Dim TypeD As String     'Différents attributs des sous-dossiers
     
        On Error GoTo Err1
     
        'On parcours tout les sous-dossiers du noeud en cours
        If InStr(Node.Key, "N") Then Exit Sub
        For Each SubFolder In fso.GetFolder(Node.Key).SubFolders
            'On vérifie que le dossier n'est pas caché
            TypeD = FolderFileAttributs(SubFolder)
            If InStr(TypeD, "G") = 0 Then
                Set SubNode = FrmMain.TreeView.Nodes.Add(Node, tvwChild, SubFolder.Path, SubFolder.Name, 1, 2)
                haveSubDirectories SubFolder.Path, SubNode
            End If
        Next
        SearchShortcutFolders Node
     
    Exit Sub
     
    Err1:
    MsgBox "Erreur : " & Str(Err.Number) & vbCrLf & Err.Description, vbCritical + vbOKOnly, "Erreur N°" + Str(Err.Number)
    Call Initialize 'Ré-initialisation de l'arbre
     
    End Sub
    Mon problème est que je veut stocker 3 informations pour chaque noeud (s'il a déja été parcouru, si il s'agit d'un dossier spécial, et son chemin réel) et que ne peut les stocker que dans deux "variables" : Le Tag et la Key. J'utilise la Key pour le chemin ce qui parait le plus logique mais lorsqu'il existe un raccourci ou un autre dossier ayant le même chemin j'ai un problème.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Par défaut
    Pourquoi ne met tu pas le chemin complet dans les clé ?
    Sinon essayes de fermer les dossiers ouverts lors de l' ouverture d' un autre dossier..

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 12
    Par défaut
    Mais je mets le chamin complet : C'est le Mais le problème c'est que si tu as un "Mes Documents" sur le bureau la clé des dossiers contenus à l'intérieurs sera :
    "C:\Documents and Setting\Session\Mes Documents\ ..."
    Et lorsque tu parcours ton arbre on obtiendra le même dossier dans "C:\Documents and Setting\Session\Mes Documents\ ..." il y a donc un conflit :S

    Quant a la solution de fermer les autres dossiers quand j'en ouvre un n'est pas du tout ce que je recherche ... désolé

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Par défaut
    Oui c' est vrai que parfois la solution de simplicité m' envahit
    Et si tu rajoutais un petit quelque chose dans les clé des dossiers ?
    Par exemple essayes d' ajouter dans la clé ton tag..
    Sinon je vois pas trop...

  7. #7
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    En parcourant rapidement ton code, je m'aperçois d'une erreur qui n'a rien avoir avec le problème initial mais qui en est pourtant un :

    Instr renvoie un ENTIER, donc ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If InStr(Node.Key, "N") Then Exit Sub
    ne marchera pas.

    Pour preuve :

    Donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ?(cbool(1) = true)
    True
    Et sinon, essaie de remplacer les espaces par quelque chose d'autre dans tes clés ... C'est souvent qu'ils posent problème. Utilise un caractère atypique par contre, peu utilisé (pour préserver l'unicité)

    A+

Discussions similaires

  1. Problème Foreign Key : "ErrCode:150"
    Par seangg dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 19/08/2008, 15h53
  2. Problème avec Key.DOWN
    Par Nymphon dans le forum Flash
    Réponses: 4
    Dernier message: 23/03/2007, 15h47
  3. Problème sur key virtuel
    Par BECHE dans le forum Delphi
    Réponses: 2
    Dernier message: 01/02/2007, 18h23
  4. [TreeView]Problème de Key
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/10/2005, 11h31
  5. TreeView - Problème avec les images
    Par LoicH dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/06/2005, 18h50

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