Yommexplorer : oubliez le dirlistbox et le filelistbox

3/5 (22 avis)

Vue 11 349 fois - Téléchargée 1 883 fois


Description

et bien voilà le résultat de nombreuses heures de dev !!!
le principe :
transformer un treeview en arborescence de répertoire , un listview en explorateur de fichier, le tout de manière interractive et en 2 lignes de code pour l'utilisateur !!! si, si je vous jure ;-)

Pour les explications des fonctionnalités alors :
le TVExplorer :
- gestion des icones réels des répertoires (même l'icone du CD-ROM qui change, la main sur les répertoires partagés, la flèche des raccourcis ...)
- choix du niveau de la racine de l'arborescence (Bureau, Poste de Travail...)
- choix d'un répertoire à ouvrir (ex : c:\windows)
- gestion du menu contextuel
- liaison avec une listview pour navigation synchronisée (ne pas confondre avec natation synchronisée!!!)

les 4 derniers paramètres sont modifiables au cours de l'execution.

le LVExplorer:
- choix du mode d'affichage (grands icones, liste...)
- choix du répertoire des fichiers
- choix de filtre sur les fichiers à afficher, le caractère de séparation étant le pipe = chr(124) (ex : "*.jpg|*.bmp" )
- choix d'inclure ou non les répertoires avec les fichiers
- utilisation du menu contextuel
  • cette option déclenche l'utilisation d'un menu popup sur les titres des colonnes en mode lvwReport(détail) pour afficher/masquer des colonnes
  • cette option déclenche l'utilisation d'un menu popup sur la zone vide du listview pour afficher les menus "Affichage", "Réorganiser les icones Par"
  • cette option déclenche l'utilisation du double-click ou de la touche [ENTER] sur un fichier pour l'executer
  • cette option déclenche l'utilisation du double-click sur un répertoire du listview pour "rentrer" dans le répertoire SI le listview est lié à un treeview
  • cette option déclenche l'utilisation de la touche [retour] pour revenir au dossier parent si le listview est lié à un treeview

- utilisation du click sur une colonne en mode lvwReport (détail) pour réorganiser les fichiers

tous les paramètres sont modifiables en cours d'execution

Infos sur les + de cette dll pour ceux qui ne seraient pas encore convaincus:
- et bien déjà c'est une dll !!!!!!! seule 2 déclarations et 2 lignes de code vous permettent d'obtenir le résultat du screenshot
- contrairement à l'ancien DirExplorer ou le FileExplorer, vous pouvez inclure autant de Treeview ou de Listview que vous désirez sur vos fenetre...Pour une deuxième fenetre vous redéclarer vos 2 variables et remettez vos 2 lignes de codes.
- pour le LVExplorer, le nom des colonnes, la largeur, la justification etc...en mode lvwReport (détail) est fonction du répertoire dans lequel vous vous trouvez...de plus , le nom des colonnes est directement pris du fichier shell32.dll (ainsi que les termes "grands icones", "liste" etc...)
- pour la flèche affichée lors de tri sur une colonne en mode lvwReport , elle est également prise du fichier shell32.dll donc l'image n'est pas fixée dans la dll

ça suffit la je crois, vous êtes convaincus. non??? alors jetez un coup d'oeil au code nécessaire pour l'utilisation de cette dll!!!

Source / Exemple :


Option Explicit

'déclaration pour la gestion de Listviews et des Treeviews
Dim LVSub As New LVExplorer
Dim TVSub As New TVExplorer

Private Sub Form_Load()
    'ajout d'un listview à traiter
    Call LVSub.Add(ListView1)
    'ajout d'un treeview à traiter et liaison avec le listview
    'IMPORTANT : pour lier un listview à un treeview il faut d'abord l'avoir ajouter dans un LVExplorer !!!!!
    Call TVSub.Add(TreeView1, ListView1)
End Sub

Conclusion :


Tout d'abord :
merci à Renfield pour son source à l'origine de mon travail

Ensuite, infos complémentaire :
pour utiliser cette dll , vous devez ajouter à votre projet :
- la référence à la dll
- les composants "Microsoft Windows Common Controls 5.0 (SP2)"

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
2
Salut,

pour ceux qui avaient aimé cela, venez voir ça :
http://www.vbfrance.com/code.aspx?ID=42960

le DirExplorer et le FileExplorer dans un YommExplorer ;-) le tout pour .Net

@+
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut Yomm !

Ben en fait j'étais sur l'extracteur d'icones de DarkSidious quand j'ai vu ton commentaire alors je suis passé par là !
Ca m'a l'air très très interressant... par contre je ne peux tester ceci de suite. Je repasse demain pour un 'vrai commentaire' sur ta source. ;-)

++
mortalino
Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
2
Tout d'abord je vous annonce la nouvelle version du YommExplorer , le YommExplorerOCX. le fonctionnement est le même mais passe par un ocx et les pb de compil semblent etre résolu de cette manière donc voilà vous pouvez trouvez un controle tout beau tout neuf et tout compilé ici :
http://www.vbfrance.com/code.aspx?ID=33733

Sinon je vais essayé de répondre au maximum de remarques qui avaient été faites ....

>>EB
- vraissenblablement maintenant les 2 lignes de code fonctionnent une fois compilées!!!

>>DKS
- pour le pb de ton lecteur C moi j'ai jamais de pb de ce genre donc j'aurai du mal à débugguer cela...
- pour le pb du dbl-click qui foire une fois sur 10 j'ai jamais rencontré le pb non plus mais attention cele peut tout simplement etre qu'il est en train de loader les sous répertoires et fichiers... genre si tu dbl-click sur le rep "windows" ou "system32" il y a évidemment un délai avant l'affichage du résultat..maintenant si c'est lorsque tu dbl-click sur un fichier et bien alors il faut vraiment clicker sur le nom du fichier...
- pour les variables public dans les class, c'est généralement parce que ceux sont de Objet Type un type qui va etre ajour à une collection...moi je fonctionne comme ça (avec des variables plublic) si je n'ai pas à retraiter les valeur avant de les ajouter , maintenat c'est chacun son truc non?

>>ASEM67
- bon voilà , c'est pas une dll que je propose au final mais un ocx , le résultat n'étant pas si différent mais maintenant au moins il n'y a plus à tout inclure dans le projet ce qui sera, je le comprends nettement plus simple d'utilisation...petit rappel du nouveau projet :
http://www.vbfrance.com/code.aspx?ID=33733

>>Seth77
- je pense que tu trouveras des infos sur l'utilisation du menu contextuel dans un autre context que celui là et nettement plus facil à utiliser pour tes besoins car dans ce projet l'utilisation du menu contextuel dépend de beaucoup d'autres choses...

>>ScSami
- j'ai essayé d'organiser le plus possible mais il y a tellement de choses que j'avoue qu'à la fin il faut vraiment ce pencher sur le code pour savoir où trouver la fonction que l'on cherche. Mais tu remarqueras que c'est généralement trié par type genre "fonctions de treeview", "fonctions de listview" , "fonctions system" etc....
- pour l'ActiveX et bien voilà, c'est un ocx alors encore plus heureux ;-)

Voilà, je pense avoir fait le tour....
Je vous invite donc tous à tester la nouvelle version en ocx!

et encore une fois : don dev @ tous !!!
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
22
C'est vrai que ce qui manque un peu c'est, justement, de "diviser" le code en plusieurs "Modules" (ou ActiveX, ce serait mieux) afin qu'on s'y retrouve un peu mieux! Car c'est clair, les débutants (et même les autres) galèrent un peu pour s'y retrouver!
Messages postés
572
Date d'inscription
mardi 30 avril 2002
Statut
Membre
Dernière intervention
4 mai 2020

BRAVO !!
Vraiment pointu, mais je mis perd un peu !
c pour cela que j ai besoin de ton aide .... j aimerais juste recupere la partie pour afficher le menu contextuel d un type de fichier ... si tu px m aider ..merci d avance
Afficher les 22 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.