Tvexplorer : arborescence des répertoires le direxplorer revu et corrigé

1/5 (17 avis)

Vue 8 837 fois - Téléchargée 1 026 fois

Description

voilà , j'avais travaillé sur un ocx , le DirExplorer mais celui ci ne me plaisait pas beaucoup ;
en effet un gros problème existait a savoir l'incompatibilité de 2 DirExplorer dans un même projet...C'est pour cela que je me suis remis à la tache et que j'ai fait le TVEplorer...

Le TVExplorer n'est plus un ocx mais un class vous permettant simplement de transformer un simple Treeview en arborescence de répertoire...

Le TVExplore concerne certaines particularités du DirExplorer , notament la possibilité de faire démarrer l'arborescence à partir d'un autre chemin que le Bureau comme par exemple le Poste de Travail...une autre fonctionnalité est de pourvoir ouvrir un chemin dans l'arborescence par le code (ex : TVSub.TVPath = "c:\windows" )

Il possède en plus la gestion du Menu contextuel en automatique...et cela est paramétrable...

Pour l'utiliser , rien de plus simple (et c'est je pense ce qui fait la force que ce source) :
1) vous déclarez dans votre forme un variable comme cela :
Dim TVSub As New TVExplorer

2) ensuite ,dans le form_load, vous ajoutez les Treeviews que vous souaitez transformer en DirExplorer en une ligne :
Call TVSub.Add(TreeView1)
Call TVSub.Add(TreeView2)

la fonction Add admets plusieurs paramètres dont voici l'explication :
a - TV As TreeView :
le Treeview ke vous souhaitez transformer en DirExplore
b -Optional ByVal UseContextMenu As Boolean = False :
utilisation ou non du menu contextuel automatique
c - Optional ByVal TreeRoot As TypeRoot = Bureau :
début de l'arborescence
d - Optional ByVal ExpandPath As String = ""
chemin dans l'arborescence à ouvrir

hors mis le paramètre TV vous pouvez constater que tous les autres sont optionels !

Infos supplémentaires :
1 ) vous pouvez très bien , en cours d'utilisation , déclanché l'utilisation du menu contextuel automatique grace a la propriété TVUseContextMenu. Le paramètre attendu est le Treeview sur lequel vous souhaitez activer/désactiver l'utilisation du menu contextuel. Ce paramètre étant optionel, si il n'est pas renseigné, c'est le premier Treeview ajouté qui sera pri en compte
2 ) pour récupérer/renseigner le chemin de l'arborescence en cour d'execution vous pouvez utiliser la propriété TVPath fonctionnant de la même manière que la propriété précédente. Il faut savoir tout de même que si la propriété Tag d'une node n'est pas modifiée, elle contient par défaut le chemin du repertoire auquel elle fait référence...cela peut etre pratique si l'on fait un Node_click par exemple....

enfin voilà ....pour utiliser ce source , intégrez les class et les modules a vos projet, n'oublié pas le fichier ISHF_Ex.tlb et de le référencer...il doit d'ailleurs apparaitre avant le OLE Automation dans la liste des références , sinon vous aurez un problème avec le type GUID...

en rappel vous trouverez le code à utiliser dans vos Forms après ce commentaire (qui commence à etre concéquent ;-) )

Source / Exemple :


Option Explicit

'déclaration de la variable permettant de transformer un Treeview en DirExplorer
Dim TVSub As New TVExplorer

'quelques fonctions pratique fournie par le TVExplorer
Private Sub Command1_Click()
    TVSub.TVPath(TreeView1) = "c:\windows"
    MsgBox TVSub.TVPath
    MsgBox TVSub.TVPath(TreeView2)
End Sub

'ajout de Treeview à transformer en DirExplorer
Private Sub Form_Load()
    Call TVSub.Add(TreeView1, True)
    Call TVSub.Add(TreeView2, False, PosteDeTravail, App.Path)
End Sub

Conclusion :


merci encore à Renfield pour son source original dont le DirExplorer en était inspiré et dont le TVExplorer en découle forcément

Codes Sources

A voir également

Ajouter un commentaire Commentaires
oommeeggaa3d
Messages postés
97
Date d'inscription
dimanche 24 avril 2005
Statut
Membre
Dernière intervention
3 septembre 2010

8 juil. 2009 à 15:23
ca date un peu (voire beaucoup), mais quelqu'un saurait comment afficher les icones des répertoires pour un treeview issu de mscomctl.ocx (Microsoft Windows Common Controls 6.0 (SP6)) ??
yomm
Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
3
13 févr. 2006 à 21:13
>>wicca05
Alors déjà une petite chose, cette source date un peu mais si je ne m'abuse, elle n'affiche pas les fichiers...donc je vois mal comment filtrer par extension de fichier...enfin peu importe j'ai tout de même un réponse à te fournir, jette un coup d'oeil ici : http://www.vbfrance.com/codes/YOMMEXPLOREROCX-POUR-VEULENT-VRAI-EXPLORATEUR-WINDOWS_33733.aspx

Comme tu peux le voir dans le lien, c'est aussi de moi et je pense que cela peut répondre à ta problématique ;-)

@+
wicca05
Messages postés
9
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
1 février 2008

13 févr. 2006 à 16:02
Genial ce prog.. comment peut on filtrer les fichiers par extension dans la fenetre du navigateur (montrer que les pdf par exemples )? quelqu un a une idée? Merci et encore bravo ....
cs_PaTaTe
Messages postés
2107
Date d'inscription
mercredi 21 août 2002
Statut
Contributeur
Dernière intervention
19 février 2021
2
13 janv. 2006 à 23:55
>>Yomm

j'avais trouvé la parade entre temps merci.

Je devais être un ppeu à l'ouest lol
yomm
Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
3
12 janv. 2006 à 22:47
Salut

j'ai plein de requete en attente et de message à répondre mais c'est temps ci j'ai pas trop le temps mais là je vais faire un effort, car ça doit pa etre grand chose...

>> PaTate
vérifie dans tes références (comme le suggérait JoBleu) que tu as bien :
IShellFolder Extended Type Library v1.2 (c'est le fichier ISHF_Ex.tlb)
et attention , il doit etre déclarer avant : OLE Automation !!! (cad au dessus dans la liste)


Voilà, normalement ton problème doit se résoudre avec cela @+

Et bon dev encore @ tous

PS:si certains attendent des réponses de ma part et qu'ils passent par là, où bien même des demandes déjà faite ou des problèmes...enfin bref je ne vous oublie pas, j'ai simplement très peu de temps en ce moment...merci de votre patience...
Afficher les 17 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.