Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TVEXPLORER : ARBORESCENCE DES RÉPERTOIRES LE DIREXPLORER REVU ET CORRIGÉ


Information sur la source

Description

Cliquez pour voir la capture en taille normale
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

  • 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
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
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de yomm le 25/04/2005 12:46:09

à venir, un explorateur de fichier dans le même esprit que le TVExplorer mais à partir d'un listview....je n'ai pas encore de nom mais...LVExplorer me semble tout trouvé ;-)

bon dev

@+

signaler à un administrateur
Commentaire de yomm le 25/04/2005 14:12:23

Salut a tous,

Très présent sur le réseau je me permets de vous demandez un petit geste.
Voilà un concour est ouvert pour des jeunse artistes musicaux et un groupe me tien particulièrement à coeur puiske ma cousine en fait partie.

Il s'agit d'un concour important sur RTL2...
je vous demande simplement d'aller sur le lien suivant :
http://www.rtl2.fr/jeux/playlist/votes_prt2005.asp

et de voter si cela vous plait , pour le groupe Lezard. L'inscription est gratuite et on peut voter une fois par jour....s'il vous plait c'est tellement difficile de percer dans ce millieux alors je vous demande un petit geste...

les votes s'arretent le 13

merci pour eux

signaler à un administrateur
Commentaire de ScSami le 26/04/2005 01:01:09

Excellent, je vais décortiqué tout ça au plus vite ! Mais je te met déjà un grand 10/10 (obligé)

J'aimerais que tu me dises ce que tu penses de cette source arrivée peu de temps après la tienne :
http://www.vbfrance.com/code.aspx?ID=26511

Il serait peut-être pratique de faire de ta source un OCX tu ne crois pas ???

Sinon, LVExplorer me semble en effet tout trouvé même si ce n'est pas trés explicite pour les néophites.

(P.S.: J'ai bien voté 2 fois pour Lezard... et je revoterais malgrés le fait qu'avec ma petite connexion je n'arrive pas à écouter le titre...)

signaler à un administrateur
Commentaire de yomm le 08/07/2005 21:27:10

Re ScSami :
après 2 mois d'attente la version annoncée est enfin sortie !
http://www.vbfrance.com/code.aspx?ID=32593

signaler à un administrateur
Commentaire de ScSami le 14/07/2005 02:04:15

C'est bon à savoir, merci :*

signaler à un administrateur
Commentaire de JoBleu le 21/10/2005 16:47:49

Salut,
Eh bien voilà un gros travail de fait, merci.
Maintenant je suis en train de buter sur l'utilisation.
Pour charger un répertoire dans le treeview ça va tout seul, mais alors maintenant si je veux sélectionner par code un sous-répertoire dedans ...
Il me semblait que le modèle était la ligne 8 de l'exemple que tu donnes, mais ça me fait arriver un coup où je veux, un coup ailleurs, donc il doit y avoir quelque chose que j'ai mal compris. A chaque répertoire que je demande correspond un répertoire que j'obtiens, donc ça ne dépend pas du chant des petits oiseaux, c'est déjà ça.
Je cherche, mais si tu pouvais m'éclairer je soupçonne que ça me ferait gagner encore un temps précieux.

signaler à un administrateur
Commentaire de yomm le 21/10/2005 19:38:21

>> JoBleu
Salut, la réponse à ton problème est là :
http://www.vbfrance.com/code.aspx?ID=33733

c'est un peu différent de ce que tu as mais bien plus puissant!!!!
donc je te conseil fortement d'aller jeter un oeil !!!

@+ et bon dev

signaler à un administrateur
Commentaire de JoBleu le 21/10/2005 20:48:53

OK merci, je regarderai ça.
Pour celui-ci, voici comment je m'en suis sorti pour ne pas y passer trop de temps.

A la fin de InsertFolder, j'ai ajouté
    Node.Key = Node.FullPath

Ensuite, pour synchroniser TreeView2 à TreeView1, je mets dans TreeView1_NodeClick(Node) :
For Each nod In TreeView2.Nodes
    nod.Expanded = False
Next
With TreeView2.Nodes(Node.FullPath)
    .EnsureVisible
    .Selected = True
End With

Pour peaufiner il ne reste plus qu'à régler la partie visible en gérant le défilement, je crois que c'est dans un contrôle liste que j'ai vu FirstVisible, mais enfin bon ça ne doit pas être la mer à boire.

signaler à un administrateur
Commentaire de JoBleu le 21/10/2005 21:55:10

Aouch, j'ai oublié que les noeuds ne sont créés qu'à mesure qu'ils sont visibles.

Ainsi ça devrait marcher je suppose :

Private Sub TreeView1_NodeClick(ByVal Node As ComctlLib.Node)
    Dim nod As Node
    TVSub.TVPath(TreeView1) = Node.FullPath
    TVSub.TVPath(TreeView2) = Node.FullPath
    For Each nod In Form1.TreeView2.Nodes
        nod.Expanded = False
    Next
    With TreeView2.Nodes(Node.FullPath)
        .EnsureVisible
        .Selected = True
    End With
End Sub

signaler à un administrateur
Commentaire de yomm le 22/10/2005 00:23:53

re

perso je te conseille de ne par trop perdre de temps sur ce source, le problème de l'utilisation de 2 treeviews était connu et c'est en grande partie pour cela que j'ai tout repris....de plus tu verras un gros + dans le nouveau source, la possibilité de gérer un explorateur de fichiers.....en plus de l'explorateur de répertoire...cool non?

merci  pour tes remarques tout de même , même si je ne touche plus du tout à ce code maintenant que l'autre à été créé et est nettement plus complet...

@+

signaler à un administrateur
Commentaire de PaTaTe le 12/01/2006 11:33:20

J'ai un soucis avec cette source.

J'ai une erreur 458 (Cette variable utilise un type non géré par Visual Basic) sur la ligne

Public Declare Function CLSIDFromString Lib "ole32.dll" (ByVal lpszProgID As Any, pCLSID As GUID) As Long

Ca se produit quand j'essaie de réutiliser le code dans un de mes programme alors que cela ne se produit pas dans la source telle quelle.

Je sais qu'une version plus aboutie existe mais personnellement je n'ai besoin que du treeview.

signaler à un administrateur
Commentaire de JoBleu le 12/01/2006 18:25:28

Salut,

Ah c'est en octobre qu'on a dit qu'il y a une nouvelle version ? Comme le temps passe. Elle est enregistrée à la place de la précédente, je suppose ? Je crois que je me rappelle maintenant : quand j'ai lu "tu verras un gros plus dans le nouveau code", je me suis dit "chouette chouette, bon eh bien attendons le nouveau code". Après j'ai oublié.

Je ne serais pas étonné que Patate ait oublié de déclarer une source dans son projet (menu projet, commande références).

signaler à un administrateur
Commentaire de yomm le 12/01/2006 22:47:32

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...

signaler à un administrateur
Commentaire de PaTaTe le 13/01/2006 23:55:42

>>Yomm

j'avais trouvé la parade entre temps merci.

Je devais être un ppeu à l'ouest lol

signaler à un administrateur
Commentaire de wicca05 le 13/02/2006 16:02:37

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 ....

signaler à un administrateur
Commentaire de yomm le 13/02/2006 21:13:15

>>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 ;-)

@+

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.