Simplesurfer
Messages postés2Date d'inscriptionvendredi 30 novembre 2007StatutMembreDernière intervention20 avril 2008 17 févr. 2008 à 23:46
10/10
je voulai, savoire si tu peu crer un ki explore des fichier ki nexist po sur le disc dur (un remote explorer par exemple)
par exemple je veu ajouter un fichier "blabla.exe" il lajoute avec licon dun exe mai kil nextst po sur le disc dur merci davence
(dsl pour mon françai je suis po françai :$)
cs_titicar
Messages postés181Date d'inscriptionjeudi 30 mai 2002StatutMembreDernière intervention19 août 2012 16 janv. 2008 à 22:30
Bonjour Maypeur,
As-tu lu les différents commentaires ci-dessus. Je dis ça car tu as l'air d'avoir exactement le même problème que Mikaels35 (datant de 10/09/2005 15:50:39).
Et juste plus bas (datant du même jour, mais à 18:35:05), Mikaels35 semble avoir résolu le problème en suivant les conseils de DARKSIDIOUS (donc, toujours du même jour!).
Cela dit et de mémoire, j'ai eu un problème (pas au premier essai) de variable 'String' (sans doute le même problème que toi et d'autres), mais je n'ai pas cherché plus loin.
Si tu veux utiliser cette source, regarde déjà les commentaires de DARKSIDIOUS.
@+ et bon prog!
Maypeur
Messages postés5Date d'inscriptionlundi 1 octobre 2007StatutMembreDernière intervention16 janvier 2008 16 janv. 2008 à 01:29
Bonjour !
mon probleme j'ai un type incompatible meme sans rien avoir toucher au code ! j'ai essayer vos differente manip mais rien y fais
Le 'refresh' en création ou suppression de dossier y est implémentée (Mayzz) mais j'ai encore un p'ti souci dessus car des fois il me crée le dossier en double dans l'arborescence (problème d'intance entre le système et le contôle enfin bref...)
J'ai pas trop le temps de bosser sur la partie 'fichiers' afin de faire au moins 100% de ce qui est fait en VB6 sous .Net mais je le ferai...(je dis au 'moins 1000%' car l'arborescence fait déjà 120% de ce que faisait la version VB6. Et oui si je passe les devs en .Net au temps essayé d'y ajouter 2 ou 3 trucs en plus ;-) )
Enfin pour terminer, je suis content de voir que certains suivent mais contrôle même si depuis quelques temps je suis pas très prolixe faut l'avouer ;-p
@+ et bon dev @ toutes et tous
cs_JoBleu
Messages postés91Date d'inscriptiondimanche 18 août 2002StatutMembreDernière intervention21 février 2015 30 mars 2007 à 00:56
Salut,
A propos de sujet, je ne sais pas si vous avez vu le temps que met maintenant cette page à se charger ... Même en ADSL avec un débit pas dégueu.
On commence à s'éloigner du concept d'hypertexte ;)
Je suis sûr que Microsoft ne demandera pas mieux que d'accueillir cette conversation sur son forum fr.dotnet, et il y aura beaucoup plus de monde pour la lire et y participer. Je crois que CodeSourceS propose des forums aussi, d'ailleurs.
En prime, ça permettra de savoir, en restant attentif ici, si jamais il y a du nouveau quant au contrôle développé par Yomm ...
cs_titicar
Messages postés181Date d'inscriptionjeudi 30 mai 2002StatutMembreDernière intervention19 août 2012 29 mars 2007 à 20:36
Tiens donc, je ne savais pas (ou j'ai oublié) que MS avait lancé une version Express (gratuite) de 'VB.NET'. Connaissant MS, elle doit être largement bridée.
Quant à la conversion de VB6 en VB.NET, faut même pas y penser. Y a assez de forums à ce sujet.
Pardon à Yomm car je m'éloigne du sujet concernant ses contrôles.
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 29 mars 2007 à 17:32
Bah! Les contrôles .NET n'on rien à voir avec les versions précédentes c'est claire ! C'est beau, c'est fonctionnel et c'est très facile d'utilisation.
Mais le souci c'est le passage des sources en .NET, même avec le moteur de mise à niveau c'est la galère à chaque fois, corriger les incompatibilités, pfffffff !
Juste au passage, il faut remercier MS pour leur version Express de vb8 100% gratuite =)
Sur ce, bonne prog @ts
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 28 mars 2007 à 18:55
Salut,
faut voir, sur les dossiers ou les fichiers?
cs_drakkard
Messages postés99Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention20 janvier 2009 27 mars 2007 à 16:48
Bonjour YOMM,
tu as une idée pour pourvoir ajouter des CheckBox à trois état en VB6 ?
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 27 mai 2006 à 12:38
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 27 mai 2006 à 01:47
Pour avoir tenter le .NET, je peux dire que dans certains cas, c'est pire que mieux.
On se plaint des runtime VB6 mais avec le framework, je trouve que c'est pire !
Maintenant chacun voit la chose comme il veut :)
Personnellement je prefere Pure Basic à .NET ; Au moins y a pas de dépendances.
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 26 mai 2006 à 23:50
merci à vous 2, content que cela vous plaise...en fait je suis, petit à petit, en train de passer certain de mes devs en .net et par conséquent, il est peu probable que celui ci subisse des modifs...
@+
bon dev @ tous
cs_loulou06
Messages postés15Date d'inscriptionvendredi 12 décembre 2003StatutMembreDernière intervention10 août 2006 26 mai 2006 à 17:54
Moi aussi, j'ai 'essaye' de faire qque chose de similaire mais je suis loin, tres loin du compte !! Ton OCX est magnifique.
Un petit truc que tu pourrais rajouter:
-la possibilité de pouvoir changer la couleur de fond et du text dans le Treeview (jai des BUGS de display perso.)
Sinon Encore FELICITATION !
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 25 mai 2006 à 21:22
Bon j'ai essayé cette source et franchement c'est très bien écris, c'est propre bref, c'est du travail de pro. Il manque juste un 'refresh' sur les listes ou treeviews lors de la suppression d' un dossier ou d'un fichier et il y a toujours le plantage du "Type incompatible" mais sans gravité...
Moi je met un bon 10/10 pour cette magnifique source très instructive.
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 23 mai 2006 à 21:14
Salut,
Ca m'a tout l'air d'être une belle source. On va regarder tout ca de plus près. Mais vu les commentaires et la note...
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 6 avril 2006 à 09:09
Normalement tu devrais récupérer également l'extension des fichiers...je viens de faire le test...
rikkuff
Messages postés5Date d'inscriptionvendredi 26 mars 2004StatutMembreDernière intervention28 août 2008 6 avril 2006 à 02:39
Bonjour,
Je voulais savoir comment récupérer le nom d'un fichier avec son extention car j'arrive a récupérer le dossier courrant (YommExplorer1.LVSub.LVPath(ListView1)) et le nom du fichier (ListView1.SelectedItem.Text) mais pas l'extention.
Est ce que quelqu'un peut m'aider ?
Merci.
Rikkuff
cs_Fraggy
Messages postés95Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 2 juin 2010 28 déc. 2005 à 02:11
- Merci pour l'aide Renfield ;)
Salut Yomm,
Lors du refresh (merci aussi Renfield) la largeur des colonnes est restaurée aussi, ce qui n'est franchement pas top ... J'ai donc enregistré la largeur de la colonne, pour la restaurer après le refresh. Pas de chance, la propriété est en "lecture seule", du coup impossible de remettre la largeur initiale, sauf manuellement.
Je me pose dès lors la question suivante :
Pourquoi donc as-tu pris les Controls 5.0(SP2) au lieu des 6.0(SP6) ??? De plus les 5.0(SP2) ,ne possèdent pas les propriétés suivantes par rapport au 6.0 "AllowColumnReorder", "CheckBoxes", "FlatScrollbar", "FullRowSelect", "Gridlines", "HotTracking", "HoverSelection".
Je me demande vraiment ce qui t'as motivé à utiliser un vieux ctl.
A part la rapidité, je préférais l'ancienne version, car celle-ci est bien trop bridée : pas de refresh du contenu du Listview (c'est un comble pour un explorer), impossible de changer la largeur des colonnes, J'ai pas réussis non plus à modifier le nom d'un fichier depuis le listview ... et il doit en rester d'autres que j'ai pas encore découvert.
Je ne pense pas que cela soit ici pour des besoins personnel, mais bien un minimum pour l'utilisation d'un ctl nommé "Explorer".
Je précise que ce ne sont pas des critiques négatives, mais bien des critiques positives, et quelques incompréhensions sur tes différents choix.
Ceci dit bravo pour le courage que t'as eu à refaire entièrement ton OCX depuis le début. Je ne donne pas encore de note. J'attends de voir les améliorations que tu y apporteras ;)
Cordialement,
FRaggy.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 23 déc. 2005 à 10:00
sur mon poste, au boulot, je n'ai pas de lecteur C:\...
(c'est mon droit ^^)
résultat, pas d'icone dans l'explorateur...
cf fonction : GetSystemImageList
j'ai changé les path dans la form de test, et j'ai eu des erreurs Bloc Width non défini, etc
erreur trappées, mais facilement testables...(If Not Node Is Nothing....)
autre chose, il est impossible de faire tourner le programme, si l'on désactive la gestion d'erreurs...
Fraggy, pour le chemin complet, tu as :
YommExplorer1.TVSub.TVPath(TreeView1)
cs_Fraggy
Messages postés95Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 2 juin 2010 23 déc. 2005 à 07:08
Salut Yomm,
et si je souhaites récupérer le chemin complet d'un répertoire lors du click sur le Tview, comment dois-je procéder ? Exemple : "sRepertoire = TV.Path"
J'ai essayé avec "TV.SelectedItem.FullPath" mais ca donne par exemple ceci :
"Poste de travail\Apps (C:)\Program Files". T'avoueras que c'est pas très exploitable sans avoir recours à une fonction pour nettoyer cela et pour obtenir tout simplement : "C:\Program Files" et qui serait directement utilisable.
Pareil pour le LView ;-)
Suis-je passé à coté d'une possibilité ou ceci est bel et bien manquant ?
cs_titicar
Messages postés181Date d'inscriptionjeudi 30 mai 2002StatutMembreDernière intervention19 août 2012 26 nov. 2005 à 13:03
Je viens de tester (uniquement pour la partie TreeView) sur Win 2000 et Win XP : Je n'ai pas encore rencontré de problème, y compris en allant dans le panneau de config et en double cliquant sur un réseau.
cs_edouardo
Messages postés2Date d'inscriptionlundi 10 février 2003StatutMembreDernière intervention25 novembre 2005 25 nov. 2005 à 19:19
Salut.
Yomm:
Bizzare Bizzare.
J'ai testé sous XP Pro et Familial, et j'ai le même problème.
Je vais me plonger dans le code.
Je te tiens au courant.
Si quelqu'un a une idée...
diparo
Messages postés2Date d'inscriptionvendredi 21 mai 2004StatutMembreDernière intervention25 novembre 2005 25 nov. 2005 à 15:29
Ok, merci pour l'info... mais je fais comment pour implémenter ma fonction sur le tri de la date?? c'est sans doute une question bete mais j'ai comment le VB la semaine dernière...
merci d'avoir répondu aussi vite
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 25 nov. 2005 à 15:21
le tri n'est pas fait dans les Items, il est juste fait dans l'affichage de ceux-ci... (vois tu la nuance ?)
il va te falloir implémanter ta function de tri sur la date ^^
diparo
Messages postés2Date d'inscriptionvendredi 21 mai 2004StatutMembreDernière intervention25 novembre 2005 25 nov. 2005 à 15:13
C'est vraiment un bel explorateur, exactement ce que je cherchais. 10/10
Cependant, j'ai un problème: je voudrais récupérer les items de la listview dans l'ordre par rapport à la date de modification. Quand je clique sur "Ranger par date de modif", pas de problème mais quand je les récupère 1 à 1 avec une boucle for: "Form1.ListView1.ListItems.Item(i)...", je les récupère dans l'ordre alphabétique et non pas dans l'ordre des dates...
Quelqu'un peut m'aider?
cs_titicar
Messages postés181Date d'inscriptionjeudi 30 mai 2002StatutMembreDernière intervention19 août 2012 24 nov. 2005 à 21:47
C'est vrai que c'est toujours bien de tester sur plusieurs systèmes antérieurs. Dès que j'ai un peu de temps (c'est pas évident de le prendre), j'installe un Win 2000.
@+ et bon prog !
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 24 nov. 2005 à 19:29
>> EDOUARDO
salut,
d'abord, merci pour le comment
deuxièmement, désolé je dev pas sous win2k donc je ne peux pas tester, peut etre que d'autres réagiront à cela, tout ce que je peux te dire c'est ke pour moi sous XP ça fonctionne...
voilà, @+ et bon dev
cs_edouardo
Messages postés2Date d'inscriptionlundi 10 février 2003StatutMembreDernière intervention25 novembre 2005 24 nov. 2005 à 17:20
Superbe source.
J'ai juste un problème sous Windows 2000:
Lorsque je vais dans le panneau de config, et que je fais un click droit sur une des connexions réseau, gros plantage,"la mémoire ne peut pas être Read".
Est-ce que d'autres ont la même chose ?
Ou est -ce que cela vient de moi ?
Est-ce que quelqu'un a une idée ?
Merci encore pour cette source.
cs_titicar
Messages postés181Date d'inscriptionjeudi 30 mai 2002StatutMembreDernière intervention19 août 2012 13 nov. 2005 à 14:41
Bravo! Ca va m'être utile : 10/10. J'ai pas encore essayer de le 'convertir' pour utiliser plûtot "Microsoft Windows Common Controls 6.0 (SP6)".
cs_JoBleu
Messages postés91Date d'inscriptiondimanche 18 août 2002StatutMembreDernière intervention21 février 2015 31 oct. 2005 à 19:21
Comme je te disais l'autre jour, je vais synchroniser deux treeviews en chemin relatif. J'ai pu faire ça en ajoutant du code à l'extérieur, si tu as l'occasion d'optimiser ça ...
ça promet, déjà ton composant débarrasse d'un sacré boulot.
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 31 oct. 2005 à 16:15
Ok ! Merci beaucoup !!
@+
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 31 oct. 2005 à 16:13
merci a vous tous pour cette entre-aide quant à la manière de pouvoir ouvrir ce groupe de projet...En DKS a + ou - raison , ce n'est pas de ma faute si vous galérez à le charger sans erreur au départ...c'est vb et non moi mais le principal pb en fait c'est que lorsque j'enregistre le projet test , je ne sais pas pourquoi mais vb au lieu de sauvegarder le lien avec le projet, sauvegarde le lien avec l'ocx qui vient d'etre compiler...pour corriger cela, editez le fichier prjtest.vbp avec notepad et modifier la référence à l'ocx par la référence au fichier vbp du YommExplorerOCX...votre problème sera ainsi corrigé...
désolé pour ce quelque petit problème mais comme je l'avais signalé pour le projet YommMP3Tool VB6 semble un peu galérer avec les groupes de projets...
enfin bref, je suis content VIOLENT_KEN que tu aies fini par y arriver...merci à toi DKS pour ton intervention et ton aide...
Sinon , concernant la demande des "dossiers cachés" et "dossiers systems" je regarderai cela mais ça doit pas être grand chose...attends quelques jours que je trouve le temps et je te tiendrai au courant...si quelqu'un à une requète, n'hésitez pas, si cet objet peut etre complété, je pense que ça peut etre une bonne chose...mais attention à ne pas s'écarter de la fonctionnalité première de cet objet!!!
@+
et merci encore
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 31 oct. 2005 à 16:03
DARKSIDIOUS --> désolé de te contredire, mais j'ai raison.
C'est bien un problème de CONCEPTION !!!
Il y a trois projets dans le *.zip (deux simples et un groupe de projets).
Quand on démarre un projet, il y a une erreur !! Et c'est valable POUR LES TROIS PROJETS !!
C'est normal pour les deux *.vbp, mais pas pour le *.vbg !!
Donc je ne suis pas fou, il y a bien un bug, non ??
Donc c'est pas moi qui ne sait pas me servir des fichiers fournis, ce sont les fichiers fournis qui ont un problème.
Pour corriger le bug, il faut donc :
-soit mettre une compatibilité bianire (dans YommExplorerOCX.vbp) sur le *.ocx et d'enregistrer le projet (inutile de recompiler quoi que ce soit)
-soit CORRIGER le BUG :
le fichier groupe incorpore en effet :
1) le projet de controle utilisateur (YommExplorerOCX.vbp)
2) le projet exemple (PrjTest.vbp)
Or le composant "yommexplorerocx.ocx" est ajouté au projet exemple. Ce qui signifie que le projet groupe a à la fois le composant *.ocx, et à la fois le controle utilisateur. Ces derniers portant le même nom, cela ne peut pas fonctionner correctement : ils se retrouvent tout deux dans le même projet !
Il faut donc supprimer le composant *.ocx de la form de test (dans le projet de test), enlever la référence à l'ocx dans le projet de test, et ajouter sur la form du projet groupe, le control UTILISATEUR. (par exemple)
DARKSIDIOUS, c'est pas parce que chez toi çà marche nickel qu'il n'y a pas de bug: je sais me servir d'un fichier *.vbp et d'un fichier *.vbg, et quand j'appuie sur F5 dans le *.vbg et que çà me sort une erreur, qu'on ne me dise pas qu'il n'y a pas de bug !!
@+
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 31 oct. 2005 à 15:19
ce n'est pas à yomm de modifier sa source, mais à vous de savoir comment utiliser des ocx : lorsque vous ouvrez un groupe de projet, pas besoin de référencer l'ocx, par contre, si vous ouvrez que le projet de test, là il faut le référencer. C'est un problème d'utilisation, pas de conception !
DarK Sidious
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 31 oct. 2005 à 15:02
Serait-il possible de pouvoir choisir d'afficher (ou non) les dossiers cachés, et aussi les dossiers systèmes ?
En tout cas, moi je dit bravo ! (10/10)
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 31 oct. 2005 à 14:57
Le bug vient du fait que l'on charge en même temps le contrôle utilisateur, et en même temps le contrôle *.ocx. Et tout les deux ont le même nom.
Yomm, corrige vite la source !! J'ai galéré, mais çà valait la peine !!
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 31 oct. 2005 à 14:41
DarkSidious-->: -j'ai suivis ce que tu as dit, et après recompilation, "Impossible de recharger c:\doc....OCX.ocx".
-Ensuite, la compatibilité binaire/projet est décochée par défaut, et quand je tente de la cocher : "Impossible de définir le composant compatible : c:\documents...\YommExplorerOCX.ocx"
JoBleu-->: -les deux projets ne peuvent pas tourner ensemble, effectivement, mais ce n'est pas ce qui foire chez moi.
-le composant YommExplorerOCX.ocx n'est pas chargé (bien qu'il apparaissent dans la barre d'outils, d'ailleurs en DOUBLE, avec la jolie bmp de Yomm :-)). Quand je le charge, çà me dit "nom de module, de projet... déjà utilisé". La premier composant Yommocx de la barre d'outils ne peut pas etre utilisé (nom deja utilisé), et le deuxième peut etre placé sur la form normalement
-pas d'erreur 429
-je suis l'admin de mon PC
-Quand je démarre le prog, çà me dit "type imcompatible à Call YommExplorer1.LVSub.Add(ListView1, lvwReport, "c:")", ce qui est normal, puisque l'ocx n'est pas reconnu.
En fait, le problème vennait du fait que le composant APPARAIT dans la barre d'outils DEUX FOIS, bien qu'il NE SOIT PAS dans la liste des composants.
Alors j'ai bidoullié les *.vbp, et je suis arrivé à avoir DEUX fois l' ocx dans la barre d'outils, et le composant coché dans la liste des composants.
Ensuite j'ai enlevé tout les YommOCX de ma form, j'ai décoché le YommOCX (il ne me reste donc plus qu'UNE icone YommOCX dans les outils), et j'ai remis un YommOCX dans ma form.
C'est maintenant fonctionnel.
@+
cs_JoBleu
Messages postés91Date d'inscriptiondimanche 18 août 2002StatutMembreDernière intervention21 février 2015 31 oct. 2005 à 14:11
Salut,
Le moins qu'on puisse dire est que j'ai eu du mal à m'y mettre, aussi.
Quelques points dont je me suis écarté :
- les deux projets ne doivent jamais être chargés ensemble
- regsvr32 n'est pas utile
- avec Ctrl T, on a la liste des composants du projet : à la fin on trouvera YommExplorerOCX, sinon on le trouvera avec le bouton Parcourir dans cette boîte de dialogue ; a priori tu n'as téléchargé qu'une version donc il n'y a pas d'erreur de version
Une fois que tu as fait tout ça, normalement tu dois reconnaître la tête de fantôme de Yomm dans la barre d'outils, là c'est gagné. Un double-clic dessus met le composant sur le formulaire.
Si tu as une erreur 429 tu refermes ton projet, tu ouvres YommExplorerOCX, et tu le recompiles. Ensuite tu reviens dans le tien. Mais ça tu l'as fait à ce que tu dis.
Si je ne m'abuse tout ceci doit être fait une fois en profil administrateur, pour que le contrôle soit autorisé.
Ah oui à un moment j'ai joué aussi avec la boîte de dialogue dont parle Darksidious.
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 31 oct. 2005 à 13:57
Décoche la compatibilité (binaire ou des projets) dans les options du projet pour pouvoir recompiler l'ocx, et ensuite, remets là.
DarK Sidious
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 31 oct. 2005 à 13:47
Ah oui, je précise qu'avec regsvr32, çà marche pas...
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 31 oct. 2005 à 13:42
Euh moi çà marche pas... J'ai bien démarré le groupe de projet, mais çà me dit : "Impossible de définir le composant compatible : c:\documents...\YommExplorerOCX.ocx"
Je fait comment, là ? J'ai essayé de recompiler l'ocx, mais çà ne marche pas.
@+
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 25 oct. 2005 à 18:32
>>JoBleu
je viens de comprendre ton problème concernant l'ExpandPath; en fait tout est logique, l'arborescence que tu utilises, a savoir le "Menu Démarrer" n'est pas valide pour la fonction d'ouverture des branches (= ExpandPath) car elle n'était pas capable de reconaitre le chemin à ouvrir.Je viens de corriger cela.
>>A tout le monde et particulièrement JoBleu
pour utiliser la propriété ExpandPath de TVSub.Add ou la propriété TVSub.TVPath lorsque la racine du treeview n'est ni le bureau ni le poste de travail, lisez les commentaires de l'historique des mises à jour du 25/10/2005 à 18:25:44 ci-dessus!!!
Bon dev @ tous
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 24 oct. 2005 à 20:07
>>JoBleu
ha oui au fait, lorsque tu veux faire un expandpath et qu'un treeview est lié à un listview, il faut mettre le chemin dans les paramètres de la fonction TVSub.add car le treeview est prioritaire sur le listview (ça parait logique sachant que c'est sur lui qu'on crée le lien mais je préfère préciser)
en suite, en cour d'execution il faut utiliser la propriété TVPath.
exemple:
YommExplorer1.TVSub.TVPath(TreeView2) = "e:\sources\yommexplorer_ocx"
voilà , j'espère que tout cela répondra à tes problèmes...
@+ et bon dev
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 24 oct. 2005 à 20:00
>>JoBleu
merci pour tes commentaires, j'ai mis à jour pour corriger le pb de l'utilisation avec plusieurs Treeviews
@+ et bon dev
cs_JoBleu
Messages postés91Date d'inscriptiondimanche 18 août 2002StatutMembreDernière intervention21 février 2015 22 oct. 2005 à 07:28
Coucou c'est encore moi !
En tout cas, ça marche, c'est même beau.
Une petite curiosité : si le treeview s'appelle TreeView1, le FullPath des noeuds ne comporte pas de barres inverses, alors que si il porte un autre nom, les barres inverses y sont. Donc, si on veut synchroniser deux treeviews, il vaut mieux les appeler TreeView2 et TreeView3, plutôt que TreeView1 et TreeView2, comme pas mal de monde aurait tendance à le faire.
Quand j'ai essayé de mettre quelque chose dans l'argument ExpandPath de la méthode Add, je me suis fait jeter (variable objet ou variable de bloc With non définie).
Qu'à cela ne tienne, j'ai pu initialiser après avoir affecté les clefs, mais j'ai dû oublier quelque chose quelque part, car VB a tendance à planter (la mémoire ne peut pas être "read"). Un truc que je n'ai pas déclaré ou pas libéré, peut-être ? Parfois j'ai la tête en l'air.
Dommage de ne pas avoir mis toutes les valeurs pour l'énumération TypeRoot, j'avais l'intention de travailler avec MenuDemarrer, MenuDemarrerAll, RepDemarrer, RepDemarrerAll. Pas grave, avec les valeurs numériques ça marche.
Attention : si la synchronisation entre TreeView2 et ListView2 fonctionne, pas celle entre TreeView3 et ListView3, du moins pas tant que je n'ai pas initialisé moi-même la propriété LinkedTo.
Un autre point auquel il faut faire attention, par code on doit pouvoir accéder à une branche qui n'est pas développée, donc la développer à cette occasion. Je me demande à quel point la procédure CreeBranche que je me suis cognée ci-dessous n'aurait pas eu sa place dans l'objet YommExplorer. Après tout, un composant, c'est à ça que ça sert :)
Bon, j'ai pris beaucoup de place sur cette page, le mal est fait, alors au point où j'en suis, peut-être autant essayer de faire avancer le Schmilblick ? Alors je mets le code de mon module ci-dessous, ça peut expliquer les causes de plantage, et surtout illustrer mon propos, ce qui il est vrai est davantage dans l'objet de la page.
J'ai mis la synchronisation de TreeView2 vers TreeView3, on aura deviné que dans le sens inverse le principe est le même.
J'ai fait un essai à l'instant, la synchronisation entre TreeView3 et ListView3 ne fonctionne pas franchement. J'en ai pourtant en principe pris soin à la fin de Form_Load.
Private Sub TreeView2_GotFocus()
InitNoeuds 'nécessaire à cet endroit ?
'à vérifier à tête reposée
End Sub
Private Sub InitNoeuds()
Dim Item As Node
Dim TV As Control
For Each TV In Me.Controls
Debug.Print "=============================="
Debug.Print TV.Name, TypeName(TV)
If TypeName(TV) = "TreeView" Then
For Each Item In TV.Nodes
Item.Key = Item.FullPath
Debug.Print Item.Key
Next
End If
Next
End Sub
Private Sub TreeView2_NodeClick(ByVal Node As ComctlLib.Node)
On Error Resume Next
Dim Item As Node
CreeBranche TreeView2.SelectedItem.FullPath, TreeView3
Me.YommExplorer1.TVSub.TVPath(TreeView3) = Me.YommExplorer1.TVSub.TVPath(TreeView2)
'En double emploi, ci-dessus ?
InitNoeuds
TreeView3.SelectedItem = TreeView3.Nodes(TreeView2.SelectedItem.Key)
End Sub
Private Sub TreeView3_NodeClick(ByVal Node As ComctlLib.Node)
On Error Resume Next
TreeView2.SelectedItem = TreeView2.Nodes(TreeView3.SelectedItem.Key)
TreeView2.SelectedItem.EnsureVisible
End Sub
Public Sub CreeBranche(ByVal Chemin As String, C As Control)
Dim Tableau() As String
Dim N As Integer
Dim TV As TreeView
Dim str As String
Dim strChemin As String
Set TV = C 'C'était pour le typage précoce
'maintenant je le laisse (flemme)
Tableau = Split(Chemin, "")
For N = LBound(Tableau) To UBound(Tableau)
str = Tableau(N) 'oui on peut critiquer str
If strChemin = "" Then
strChemin = str
Else
strChemin = strChemin + "" + str
End If
TV.Nodes(strChemin).Expanded = True
Next
End Sub
cs_JoBleu
Messages postés91Date d'inscriptiondimanche 18 août 2002StatutMembreDernière intervention21 février 2015 22 oct. 2005 à 04:23
Rhââââââ !!!!
Si je n'essayais pas d'inventer, aussi :/
(capable de me gourrer de smiley, en plus ...)
Super.
Pour la ListView il m'a réclamé le deuxième argument, bon, quand il n'y a plus que ça ...
D'ici demain j'essaie avec deux jeux de TreeView / ListView, et en précisant la racine de chaque jeu.
Désolé d'avoir encombré la page.
cs_JoBleu
Messages postés91Date d'inscriptiondimanche 18 août 2002StatutMembreDernière intervention21 février 2015 22 oct. 2005 à 03:56
J'ai essayé avec un groupe de projets, en ouvrant le projet dans l'IDE. Cette fois, je me retrouve à l'exécution avec une erreur 40004015, la classe est configurée comme un ID de sécurité différent de celui de l'appelant.
Que deux lignes de code à taper, tu disais ?
cs_JoBleu
Messages postés91Date d'inscriptiondimanche 18 août 2002StatutMembreDernière intervention21 février 2015 22 oct. 2005 à 03:19
Salut,
Ah, ben je me sens un peu bête, là ...
Quand j'ai essayé d'enregistrer le composant (ocx) avec regsvr32, il m'a été répondu erreur 80004005, ce qui semble-t-il signifie "fichier déjà ouvert". Pareil si je réessaie après avoir redémarré Windows.
Pas ça qu'il fallait faire ?
J'essaierais bien de le recompiler, mais depuis le temps qu'on dit qu'il n'y a plus besoin ...
cs_acecel
Messages postés10Date d'inscriptionjeudi 6 mai 2004StatutMembreDernière intervention20 janvier 2006 12 oct. 2005 à 09:09
Ca a l'air pas mal!
Je n'ai pas encore eu le temps de regarder plus préçisement (j'en ai pas l'utilité pour le moment).
Mais je t'ai quand même noté 10/10.
;-)
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 16 sept. 2005 à 22:12
Désolé, pas pu répondre + tot...
1) en effet, concernant le problème de recompil du projet, cela provient du fait que dès que je compile l'ocx, vb m'enregistre l'ocx comme objet et non plus le projet lui-même dans le PrjTest...Donc en effet, il semblerait qu'un regsvr32 s'impose pour ouvrir tout cela sans problème
2)
>> Sirocooo:
je réinvente pas la poudre lol, comme le dit Renfield,c'est déjà pour pouvoir avoir un controle un peu plus sympa que ces bon vieux DriveListBox, DirListBox et FileListBox...et de plus, cela montre un aspect tout autre de VB...et j'aime me prendre la tête LOLLLL
>> Tigroo974:
no problemo et merci pour la note ;-)
>> Rey :
Je commence en effet à assez bien maitriser ce code...merci pour les félicitations...mais tu avais déjà bien déblayé le terrain...j'ai fait du tri...j'ai planter ma machine ;-$ et je me suis attaqué au listview ;-) et voilà le résultat !!!!
bon dev @ tous
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 14 sept. 2005 à 09:34
Sirocoo, il ne s'agit pas de réinventer la poudre.
Outre le coté experimental, et pour prouver que VB en est capable...
Ce controle offre d'interessantes possibilités.
Il ne s'agit pas de vouloir refaire un Explorateur 100% identique...(me trompe-je ?)
Ce controle est utile, en remplacement d'un DirListBox/DriveListBox et d'un FileListBox, qui datent un peu, et ne sont pas très ergonomiques.
Yomm, tu maîtrise ce code manifestement complètement (désormais ?), mes félicitations.
tigroo974
Messages postés6Date d'inscriptionmardi 5 août 2003StatutMembreDernière intervention18 juillet 2006 13 sept. 2005 à 07:16
désolé Yomm je suis confus , ce n'étais pas ton code qui ne fonctionnait pas mais la notation mais c rétabli est j'ai mis 10/10. Désolé encore de cette confusion!!!
cs_Unreal
Messages postés89Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention26 mars 2006 12 sept. 2005 à 18:36
je connaissais deja ce controle ;)
Sirocooo
Messages postés412Date d'inscriptionmercredi 19 décembre 2001StatutMembreDernière intervention 7 avril 20081 12 sept. 2005 à 11:40
C'est bien mais pourquoi réinventer la poudre ?
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 12 sept. 2005 à 09:27
Mais pourquoi certains d'entre-vous me dise que cela marche pas...je suis désolé pour vous.Je viens moi-même de télécharger le zip depuis mon boulot, j'ai dezzipé, j'ai ouvert le fichier GrpYommExplorerOCX.vbg j'ai fait F5 et ça a marché du premier coup......
Je comprends pas le problème que vous avez....Tigroo974 si tu trouves d'où viens ton problème, merci de me le faire savoir pour que je puisse corriger cela pour les autres...
Merci @+ et bon dev
tigroo974
Messages postés6Date d'inscriptionmardi 5 août 2003StatutMembreDernière intervention18 juillet 2006 12 sept. 2005 à 07:42
super boulot. je mettrai ma note dès que je le pourrai car pour l'instant ca marche pas!!
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 11 sept. 2005 à 17:06
ok merci :) 10/10
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 11 sept. 2005 à 17:04
>>PaTaTe
j'ai updater la source , normalement tu devrais pouvoir ouvrir le projet...
pour ton problème de menu contextuel, tu n'a qu'à désactiver le menu contextuel automatique, propriété UseContextMenu = False et tu crées le tiens... en menu popup...ensuite, si tu veux filtrer certains type de fichier utilise la propriété Pattern....et tu peux même ne pas afficher les répertoires dans le listview si cela te dit
exemple:
Call YommExplorer1.LVSub.Add(ListView1, , ,"*.mp3",False,False)
voilà bon dev @ tous
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 11 sept. 2005 à 13:48
Chez moi ca ne fonctionne pas ...
J'ai le message d'erreur suivant :
Unable to set the version compatible component : C:\...\YommExplorerOCX.ocx
Du fait que cela ne marche pas chez moi, j'aurais une question : Est-t-il possible de personaliser les menus contextuels ou non (en fonction des extention de fichirs notement) ?
Merci de m'aider
cs_pluplu
Messages postés615Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention 4 juillet 2012 11 sept. 2005 à 09:36
Très bonne source, il faut effectivement recompilé l'OCX, puis l'enregistrer, et dans le projet test (PrjTst.vbp)il faut virer dans la form le control déjà existant YommExplorer1 puis le remplacer en drag and drop par un nouveau repris depuis la boite à outils et le tour est joué. ça marche nickel!
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 10 sept. 2005 à 19:52
>>Mikaels35
c'est cool ke ça marche, un instant tu m'as fait peur ;-)
et merci pour la note
@+
Mikaels35
Messages postés146Date d'inscriptiondimanche 23 janvier 2005StatutMembreDernière intervention17 novembre 20092 10 sept. 2005 à 18:35
J'avais pourtant bien mis les deux composants sur la form, j'ai enregistré l'OCX, je l'ai même placée dans SYSTEM32 et j'avais toujours le même message d'erreur "Type incompatible"........
puis j'ai utilisé la méthode de DARKSIDIOUS et recompilé l'OCX et miracle ça marche super !!!!
Je mets sans hésiter un 10/10 !!
Bonne continuation.
@+
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 10 sept. 2005 à 17:28
Non, une fois compilé (pour l'enregistrer dans le registre), ton ocx marche très bien !
DarK Sidious
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 10 sept. 2005 à 17:11
si tu lance le prjtst.vbp c'est normal le controle est déclaré via son projet...donc pour tester le prjtest il faut absolument utiliser le groupe
maintenant, si tu crées un projet tout beau tout neuf, va dans menu projet , puis composants, puis coches:
- YommExplorerOCX
- Microsoft Windows Common Controls 5.0 (SP2)"
si YommExplorerOCX n'apprait pas, un petit regsvr32 et le pb sera réglé...
enfin, sur une form, ajoutes un YommExplorer (controle avec mon avatar) puis un copier/coller du code du prjtest et normalement tout devrait fonctionner....
visiblement les autres n'ont pas eut de problème donc tu devrais pas en avoir
...
bon dev @ toi
Yom
Mikaels35
Messages postés146Date d'inscriptiondimanche 23 janvier 2005StatutMembreDernière intervention17 novembre 20092 10 sept. 2005 à 15:50
Salut
C'est très bien mais chez moi ça fonctionne si je lance le GrpYommExplorerOCX.vbg dans le dossier dézippé mais pas avec le PrjTst.vbp ni si je crée un projet à part !
J'obtiens une erreur "Type incompatible" sur la ligne:
Superbe, rien à dire, ça marche vraiment très bien, bref 10/10
Continue comme ça.
Bonne prog
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 10 sept. 2005 à 13:34
Vraiment superbe, bravo !
Niveau rapidité, c'est vraiment très bien (on n'égale quand même pas l'explorateur de Windows, mais c'est déjà très très bien par rapport à d'autres sources !!!). Un ordre de grandeur : 8 secondes pour charer le dossier System32 sur mon poste équipé en Athlon XP 1800 +, ca va suffisament vite ! (moins d'une seconde avec l'explorateur de Windows, mais les icônes sont mises en cache, donc c'est normal que ca aille plus vite).
Pas de bug à signaler pour le moment ;)
10/10 (et c'est rare chez moi !).
Je pense que je vais utiliser ta source pour faire un explorateur Windows amélioré ;)
DarK Sidious
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 10 sept. 2005 à 12:48
Marche impéccable ! 10/10
Continu....Bon dev...
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 10 sept. 2005 à 11:39
Voilà, je pense enfin avoir résolu les quelques problèmes de compilation et avoir trouver une méthode simple pour ne pas avoir à inclure toutes les class et tous les modules ....mais juste avoir à ajouter un composant...
J'ai créé un projet simple en incluant le controle et les "Microsoft Windows Common Controls 5.0 (SP2)" et j'ai mis les 4 lignes de code ci-dessus, j'ai compilé et ça à l'air de fonctionner...donc voilà je vous fourni le résultat de mon travail...
Si vous rencontrez quelques problèmes, n'hésitez pas à me le dire!!! Et surtout si vous etes content n'hésitez pas également à me le dire LOL!!!!!!!
bon voilà en espérant que cette version satisfera la plus part d'entre-vous !!!
17 févr. 2008 à 23:46
je voulai, savoire si tu peu crer un ki explore des fichier ki nexist po sur le disc dur (un remote explorer par exemple)
par exemple je veu ajouter un fichier "blabla.exe" il lajoute avec licon dun exe mai kil nextst po sur le disc dur merci davence
(dsl pour mon françai je suis po françai :$)
16 janv. 2008 à 22:30
As-tu lu les différents commentaires ci-dessus. Je dis ça car tu as l'air d'avoir exactement le même problème que Mikaels35 (datant de 10/09/2005 15:50:39).
Et juste plus bas (datant du même jour, mais à 18:35:05), Mikaels35 semble avoir résolu le problème en suivant les conseils de DARKSIDIOUS (donc, toujours du même jour!).
Cela dit et de mémoire, j'ai eu un problème (pas au premier essai) de variable 'String' (sans doute le même problème que toi et d'autres), mais je n'ai pas cherché plus loin.
Si tu veux utiliser cette source, regarde déjà les commentaires de DARKSIDIOUS.
@+ et bon prog!
16 janv. 2008 à 01:29
mon probleme j'ai un type incompatible meme sans rien avoir toucher au code ! j'ai essayer vos differente manip mais rien y fais
mon code est celui fourni avec l'archive .
ca bloque a cette ligne :
Call YommExplorer1.LVSub.Add(ListView1, lvwReport, "c:")
merci .
14 janv. 2008 à 23:17
je fais un tour rapide sur vbfrance donc j'en profite pour te remercier pour ta note et ton commentaire.
@+ et bon devs
Yomm
15 déc. 2007 à 17:28
15 déc. 2007 à 17:27
Un must !
2 juin 2007 à 16:19
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
@+
18 avril 2007 à 15:19
Infos:
mise à jour du DirExplorerOCX.Net (plein de nouvelles choses)
http://www.vbfrance.com/codes/DIREXPLORER-EXPLORATEUR-EXPLORER-DOSSIERS-MULTIFONCTIONS-VRAIS-ICONS-RACINE_36915.aspx
30 mars 2007 à 18:09
30 mars 2007 à 18:07
Juste pour repréciser que la version .Net de l'arborescence de Dossiers existe déjà pour ce qui l'avait zappée : http://www.vbfrance.com/codes/DIREXPLORER-REVIENT-DANS-VERSION-NET_36915.aspx
Le 'refresh' en création ou suppression de dossier y est implémentée (Mayzz) mais j'ai encore un p'ti souci dessus car des fois il me crée le dossier en double dans l'arborescence (problème d'intance entre le système et le contôle enfin bref...)
J'ai pas trop le temps de bosser sur la partie 'fichiers' afin de faire au moins 100% de ce qui est fait en VB6 sous .Net mais je le ferai...(je dis au 'moins 1000%' car l'arborescence fait déjà 120% de ce que faisait la version VB6. Et oui si je passe les devs en .Net au temps essayé d'y ajouter 2 ou 3 trucs en plus ;-) )
Enfin pour terminer, je suis content de voir que certains suivent mais contrôle même si depuis quelques temps je suis pas très prolixe faut l'avouer ;-p
@+ et bon dev @ toutes et tous
30 mars 2007 à 00:56
A propos de sujet, je ne sais pas si vous avez vu le temps que met maintenant cette page à se charger ... Même en ADSL avec un débit pas dégueu.
On commence à s'éloigner du concept d'hypertexte ;)
Je suis sûr que Microsoft ne demandera pas mieux que d'accueillir cette conversation sur son forum fr.dotnet, et il y aura beaucoup plus de monde pour la lire et y participer. Je crois que CodeSourceS propose des forums aussi, d'ailleurs.
En prime, ça permettra de savoir, en restant attentif ici, si jamais il y a du nouveau quant au contrôle développé par Yomm ...
29 mars 2007 à 20:36
Quant à la conversion de VB6 en VB.NET, faut même pas y penser. Y a assez de forums à ce sujet.
Pardon à Yomm car je m'éloigne du sujet concernant ses contrôles.
29 mars 2007 à 17:32
Mais le souci c'est le passage des sources en .NET, même avec le moteur de mise à niveau c'est la galère à chaque fois, corriger les incompatibilités, pfffffff !
Juste au passage, il faut remercier MS pour leur version Express de vb8 100% gratuite =)
Sur ce, bonne prog @ts
28 mars 2007 à 18:55
faut voir, sur les dossiers ou les fichiers?
27 mars 2007 à 16:48
tu as une idée pour pourvoir ajouter des CheckBox à trois état en VB6 ?
27 mai 2006 à 12:38
http://www.vbfrance.com/codes/DIREXPLORER-REVIENT-DANS-VERSION-NET_36915.aspx
.......
27 mai 2006 à 01:47
On se plaint des runtime VB6 mais avec le framework, je trouve que c'est pire !
Maintenant chacun voit la chose comme il veut :)
Personnellement je prefere Pure Basic à .NET ; Au moins y a pas de dépendances.
26 mai 2006 à 23:50
@+
bon dev @ tous
26 mai 2006 à 17:54
Un petit truc que tu pourrais rajouter:
-la possibilité de pouvoir changer la couleur de fond et du text dans le Treeview (jai des BUGS de display perso.)
Sinon Encore FELICITATION !
25 mai 2006 à 21:22
Moi je met un bon 10/10 pour cette magnifique source très instructive.
23 mai 2006 à 21:14
Ca m'a tout l'air d'être une belle source. On va regarder tout ca de plus près. Mais vu les commentaires et la note...
6 avril 2006 à 09:09
6 avril 2006 à 02:39
Je voulais savoir comment récupérer le nom d'un fichier avec son extention car j'arrive a récupérer le dossier courrant (YommExplorer1.LVSub.LVPath(ListView1)) et le nom du fichier (ListView1.SelectedItem.Text) mais pas l'extention.
Est ce que quelqu'un peut m'aider ?
Merci.
Rikkuff
28 déc. 2005 à 02:11
Salut Yomm,
Lors du refresh (merci aussi Renfield) la largeur des colonnes est restaurée aussi, ce qui n'est franchement pas top ... J'ai donc enregistré la largeur de la colonne, pour la restaurer après le refresh. Pas de chance, la propriété est en "lecture seule", du coup impossible de remettre la largeur initiale, sauf manuellement.
Je me pose dès lors la question suivante :
Pourquoi donc as-tu pris les Controls 5.0(SP2) au lieu des 6.0(SP6) ??? De plus les 5.0(SP2) ,ne possèdent pas les propriétés suivantes par rapport au 6.0 "AllowColumnReorder", "CheckBoxes", "FlatScrollbar", "FullRowSelect", "Gridlines", "HotTracking", "HoverSelection".
Je me demande vraiment ce qui t'as motivé à utiliser un vieux ctl.
A part la rapidité, je préférais l'ancienne version, car celle-ci est bien trop bridée : pas de refresh du contenu du Listview (c'est un comble pour un explorer), impossible de changer la largeur des colonnes, J'ai pas réussis non plus à modifier le nom d'un fichier depuis le listview ... et il doit en rester d'autres que j'ai pas encore découvert.
Je ne pense pas que cela soit ici pour des besoins personnel, mais bien un minimum pour l'utilisation d'un ctl nommé "Explorer".
Je précise que ce ne sont pas des critiques négatives, mais bien des critiques positives, et quelques incompréhensions sur tes différents choix.
Ceci dit bravo pour le courage que t'as eu à refaire entièrement ton OCX depuis le début. Je ne donne pas encore de note. J'attends de voir les améliorations que tu y apporteras ;)
Cordialement,
FRaggy.
23 déc. 2005 à 10:00
(c'est mon droit ^^)
résultat, pas d'icone dans l'explorateur...
cf fonction : GetSystemImageList
j'ai changé les path dans la form de test, et j'ai eu des erreurs Bloc Width non défini, etc
erreur trappées, mais facilement testables...(If Not Node Is Nothing....)
autre chose, il est impossible de faire tourner le programme, si l'on désactive la gestion d'erreurs...
Fraggy, pour le chemin complet, tu as :
YommExplorer1.TVSub.TVPath(TreeView1)
23 déc. 2005 à 07:08
et si je souhaites récupérer le chemin complet d'un répertoire lors du click sur le Tview, comment dois-je procéder ? Exemple : "sRepertoire = TV.Path"
J'ai essayé avec "TV.SelectedItem.FullPath" mais ca donne par exemple ceci :
"Poste de travail\Apps (C:)\Program Files". T'avoueras que c'est pas très exploitable sans avoir recours à une fonction pour nettoyer cela et pour obtenir tout simplement : "C:\Program Files" et qui serait directement utilisable.
Pareil pour le LView ;-)
Suis-je passé à coté d'une possibilité ou ceci est bel et bien manquant ?
26 nov. 2005 à 13:03
25 nov. 2005 à 19:19
Yomm:
Bizzare Bizzare.
J'ai testé sous XP Pro et Familial, et j'ai le même problème.
Je vais me plonger dans le code.
Je te tiens au courant.
Si quelqu'un a une idée...
25 nov. 2005 à 15:29
merci d'avoir répondu aussi vite
25 nov. 2005 à 15:21
il va te falloir implémanter ta function de tri sur la date ^^
25 nov. 2005 à 15:13
Cependant, j'ai un problème: je voudrais récupérer les items de la listview dans l'ordre par rapport à la date de modification. Quand je clique sur "Ranger par date de modif", pas de problème mais quand je les récupère 1 à 1 avec une boucle for: "Form1.ListView1.ListItems.Item(i)...", je les récupère dans l'ordre alphabétique et non pas dans l'ordre des dates...
Quelqu'un peut m'aider?
24 nov. 2005 à 21:47
@+ et bon prog !
24 nov. 2005 à 19:29
salut,
d'abord, merci pour le comment
deuxièmement, désolé je dev pas sous win2k donc je ne peux pas tester, peut etre que d'autres réagiront à cela, tout ce que je peux te dire c'est ke pour moi sous XP ça fonctionne...
voilà, @+ et bon dev
24 nov. 2005 à 17:20
J'ai juste un problème sous Windows 2000:
Lorsque je vais dans le panneau de config, et que je fais un click droit sur une des connexions réseau, gros plantage,"la mémoire ne peut pas être Read".
Est-ce que d'autres ont la même chose ?
Ou est -ce que cela vient de moi ?
Est-ce que quelqu'un a une idée ?
Merci encore pour cette source.
13 nov. 2005 à 14:41
31 oct. 2005 à 19:21
ça promet, déjà ton composant débarrasse d'un sacré boulot.
31 oct. 2005 à 16:15
@+
31 oct. 2005 à 16:13
désolé pour ce quelque petit problème mais comme je l'avais signalé pour le projet YommMP3Tool VB6 semble un peu galérer avec les groupes de projets...
enfin bref, je suis content VIOLENT_KEN que tu aies fini par y arriver...merci à toi DKS pour ton intervention et ton aide...
Sinon , concernant la demande des "dossiers cachés" et "dossiers systems" je regarderai cela mais ça doit pas être grand chose...attends quelques jours que je trouve le temps et je te tiendrai au courant...si quelqu'un à une requète, n'hésitez pas, si cet objet peut etre complété, je pense que ça peut etre une bonne chose...mais attention à ne pas s'écarter de la fonctionnalité première de cet objet!!!
@+
et merci encore
31 oct. 2005 à 16:03
C'est bien un problème de CONCEPTION !!!
Il y a trois projets dans le *.zip (deux simples et un groupe de projets).
Quand on démarre un projet, il y a une erreur !! Et c'est valable POUR LES TROIS PROJETS !!
C'est normal pour les deux *.vbp, mais pas pour le *.vbg !!
Donc je ne suis pas fou, il y a bien un bug, non ??
Donc c'est pas moi qui ne sait pas me servir des fichiers fournis, ce sont les fichiers fournis qui ont un problème.
Pour corriger le bug, il faut donc :
-soit mettre une compatibilité bianire (dans YommExplorerOCX.vbp) sur le *.ocx et d'enregistrer le projet (inutile de recompiler quoi que ce soit)
-soit CORRIGER le BUG :
le fichier groupe incorpore en effet :
1) le projet de controle utilisateur (YommExplorerOCX.vbp)
2) le projet exemple (PrjTest.vbp)
Or le composant "yommexplorerocx.ocx" est ajouté au projet exemple. Ce qui signifie que le projet groupe a à la fois le composant *.ocx, et à la fois le controle utilisateur. Ces derniers portant le même nom, cela ne peut pas fonctionner correctement : ils se retrouvent tout deux dans le même projet !
Il faut donc supprimer le composant *.ocx de la form de test (dans le projet de test), enlever la référence à l'ocx dans le projet de test, et ajouter sur la form du projet groupe, le control UTILISATEUR. (par exemple)
DARKSIDIOUS, c'est pas parce que chez toi çà marche nickel qu'il n'y a pas de bug: je sais me servir d'un fichier *.vbp et d'un fichier *.vbg, et quand j'appuie sur F5 dans le *.vbg et que çà me sort une erreur, qu'on ne me dise pas qu'il n'y a pas de bug !!
@+
31 oct. 2005 à 15:19
DarK Sidious
31 oct. 2005 à 15:02
En tout cas, moi je dit bravo ! (10/10)
@+
31 oct. 2005 à 14:57
Yomm, corrige vite la source !! J'ai galéré, mais çà valait la peine !!
@+
31 oct. 2005 à 14:41
-Ensuite, la compatibilité binaire/projet est décochée par défaut, et quand je tente de la cocher : "Impossible de définir le composant compatible : c:\documents...\YommExplorerOCX.ocx"
JoBleu-->: -les deux projets ne peuvent pas tourner ensemble, effectivement, mais ce n'est pas ce qui foire chez moi.
-le composant YommExplorerOCX.ocx n'est pas chargé (bien qu'il apparaissent dans la barre d'outils, d'ailleurs en DOUBLE, avec la jolie bmp de Yomm :-)). Quand je le charge, çà me dit "nom de module, de projet... déjà utilisé". La premier composant Yommocx de la barre d'outils ne peut pas etre utilisé (nom deja utilisé), et le deuxième peut etre placé sur la form normalement
-pas d'erreur 429
-je suis l'admin de mon PC
-Quand je démarre le prog, çà me dit "type imcompatible à Call YommExplorer1.LVSub.Add(ListView1, lvwReport, "c:")", ce qui est normal, puisque l'ocx n'est pas reconnu.
En fait, le problème vennait du fait que le composant APPARAIT dans la barre d'outils DEUX FOIS, bien qu'il NE SOIT PAS dans la liste des composants.
Alors j'ai bidoullié les *.vbp, et je suis arrivé à avoir DEUX fois l' ocx dans la barre d'outils, et le composant coché dans la liste des composants.
Ensuite j'ai enlevé tout les YommOCX de ma form, j'ai décoché le YommOCX (il ne me reste donc plus qu'UNE icone YommOCX dans les outils), et j'ai remis un YommOCX dans ma form.
C'est maintenant fonctionnel.
@+
31 oct. 2005 à 14:11
Le moins qu'on puisse dire est que j'ai eu du mal à m'y mettre, aussi.
Quelques points dont je me suis écarté :
- les deux projets ne doivent jamais être chargés ensemble
- regsvr32 n'est pas utile
- avec Ctrl T, on a la liste des composants du projet : à la fin on trouvera YommExplorerOCX, sinon on le trouvera avec le bouton Parcourir dans cette boîte de dialogue ; a priori tu n'as téléchargé qu'une version donc il n'y a pas d'erreur de version
Une fois que tu as fait tout ça, normalement tu dois reconnaître la tête de fantôme de Yomm dans la barre d'outils, là c'est gagné. Un double-clic dessus met le composant sur le formulaire.
Si tu as une erreur 429 tu refermes ton projet, tu ouvres YommExplorerOCX, et tu le recompiles. Ensuite tu reviens dans le tien. Mais ça tu l'as fait à ce que tu dis.
Si je ne m'abuse tout ceci doit être fait une fois en profil administrateur, pour que le contrôle soit autorisé.
Ah oui à un moment j'ai joué aussi avec la boîte de dialogue dont parle Darksidious.
31 oct. 2005 à 13:57
DarK Sidious
31 oct. 2005 à 13:47
31 oct. 2005 à 13:42
Je fait comment, là ? J'ai essayé de recompiler l'ocx, mais çà ne marche pas.
@+
25 oct. 2005 à 18:32
je viens de comprendre ton problème concernant l'ExpandPath; en fait tout est logique, l'arborescence que tu utilises, a savoir le "Menu Démarrer" n'est pas valide pour la fonction d'ouverture des branches (= ExpandPath) car elle n'était pas capable de reconaitre le chemin à ouvrir.Je viens de corriger cela.
>>A tout le monde et particulièrement JoBleu
pour utiliser la propriété ExpandPath de TVSub.Add ou la propriété TVSub.TVPath lorsque la racine du treeview n'est ni le bureau ni le poste de travail, lisez les commentaires de l'historique des mises à jour du 25/10/2005 à 18:25:44 ci-dessus!!!
Bon dev @ tous
24 oct. 2005 à 20:07
ha oui au fait, lorsque tu veux faire un expandpath et qu'un treeview est lié à un listview, il faut mettre le chemin dans les paramètres de la fonction TVSub.add car le treeview est prioritaire sur le listview (ça parait logique sachant que c'est sur lui qu'on crée le lien mais je préfère préciser)
en suite, en cour d'execution il faut utiliser la propriété TVPath.
exemple:
YommExplorer1.TVSub.TVPath(TreeView2) = "e:\sources\yommexplorer_ocx"
voilà , j'espère que tout cela répondra à tes problèmes...
@+ et bon dev
24 oct. 2005 à 20:00
merci pour tes commentaires, j'ai mis à jour pour corriger le pb de l'utilisation avec plusieurs Treeviews
@+ et bon dev
22 oct. 2005 à 07:28
En tout cas, ça marche, c'est même beau.
Une petite curiosité : si le treeview s'appelle TreeView1, le FullPath des noeuds ne comporte pas de barres inverses, alors que si il porte un autre nom, les barres inverses y sont. Donc, si on veut synchroniser deux treeviews, il vaut mieux les appeler TreeView2 et TreeView3, plutôt que TreeView1 et TreeView2, comme pas mal de monde aurait tendance à le faire.
Quand j'ai essayé de mettre quelque chose dans l'argument ExpandPath de la méthode Add, je me suis fait jeter (variable objet ou variable de bloc With non définie).
Qu'à cela ne tienne, j'ai pu initialiser après avoir affecté les clefs, mais j'ai dû oublier quelque chose quelque part, car VB a tendance à planter (la mémoire ne peut pas être "read"). Un truc que je n'ai pas déclaré ou pas libéré, peut-être ? Parfois j'ai la tête en l'air.
Dommage de ne pas avoir mis toutes les valeurs pour l'énumération TypeRoot, j'avais l'intention de travailler avec MenuDemarrer, MenuDemarrerAll, RepDemarrer, RepDemarrerAll. Pas grave, avec les valeurs numériques ça marche.
Attention : si la synchronisation entre TreeView2 et ListView2 fonctionne, pas celle entre TreeView3 et ListView3, du moins pas tant que je n'ai pas initialisé moi-même la propriété LinkedTo.
Un autre point auquel il faut faire attention, par code on doit pouvoir accéder à une branche qui n'est pas développée, donc la développer à cette occasion. Je me demande à quel point la procédure CreeBranche que je me suis cognée ci-dessous n'aurait pas eu sa place dans l'objet YommExplorer. Après tout, un composant, c'est à ça que ça sert :)
Bon, j'ai pris beaucoup de place sur cette page, le mal est fait, alors au point où j'en suis, peut-être autant essayer de faire avancer le Schmilblick ? Alors je mets le code de mon module ci-dessous, ça peut expliquer les causes de plantage, et surtout illustrer mon propos, ce qui il est vrai est davantage dans l'objet de la page.
J'ai mis la synchronisation de TreeView2 vers TreeView3, on aura deviné que dans le sens inverse le principe est le même.
J'ai fait un essai à l'instant, la synchronisation entre TreeView3 et ListView3 ne fonctionne pas franchement. J'en ai pourtant en principe pris soin à la fin de Form_Load.
Private Sub Form_Load()
Call YommExplorer1.LVSub.Add(ListView2, lvwReport)
Call YommExplorer1.LVSub.Add(ListView3, lvwReport)
Call YommExplorer1.TVSub.Add(TreeView2, ListView2, 11, , True)
Call YommExplorer1.TVSub.Add(TreeView3, ListView3, 22, , True)
YommExplorer1.TVSub.LinkedTo(TreeView3) = ListView3
End Sub
Private Sub TreeView2_GotFocus()
InitNoeuds 'nécessaire à cet endroit ?
'à vérifier à tête reposée
End Sub
Private Sub InitNoeuds()
Dim Item As Node
Dim TV As Control
For Each TV In Me.Controls
Debug.Print "=============================="
Debug.Print TV.Name, TypeName(TV)
If TypeName(TV) = "TreeView" Then
For Each Item In TV.Nodes
Item.Key = Item.FullPath
Debug.Print Item.Key
Next
End If
Next
End Sub
Private Sub TreeView2_NodeClick(ByVal Node As ComctlLib.Node)
On Error Resume Next
Dim Item As Node
CreeBranche TreeView2.SelectedItem.FullPath, TreeView3
Me.YommExplorer1.TVSub.TVPath(TreeView3) = Me.YommExplorer1.TVSub.TVPath(TreeView2)
'En double emploi, ci-dessus ?
InitNoeuds
TreeView3.SelectedItem = TreeView3.Nodes(TreeView2.SelectedItem.Key)
End Sub
Private Sub TreeView3_NodeClick(ByVal Node As ComctlLib.Node)
On Error Resume Next
TreeView2.SelectedItem = TreeView2.Nodes(TreeView3.SelectedItem.Key)
TreeView2.SelectedItem.EnsureVisible
End Sub
Public Sub CreeBranche(ByVal Chemin As String, C As Control)
Dim Tableau() As String
Dim N As Integer
Dim TV As TreeView
Dim str As String
Dim strChemin As String
Set TV = C 'C'était pour le typage précoce
'maintenant je le laisse (flemme)
Tableau = Split(Chemin, "")
For N = LBound(Tableau) To UBound(Tableau)
str = Tableau(N) 'oui on peut critiquer str
If strChemin = "" Then
strChemin = str
Else
strChemin = strChemin + "" + str
End If
TV.Nodes(strChemin).Expanded = True
Next
End Sub
22 oct. 2005 à 04:23
Si je n'essayais pas d'inventer, aussi :/
(capable de me gourrer de smiley, en plus ...)
Super.
Pour la ListView il m'a réclamé le deuxième argument, bon, quand il n'y a plus que ça ...
D'ici demain j'essaie avec deux jeux de TreeView / ListView, et en précisant la racine de chaque jeu.
Désolé d'avoir encombré la page.
22 oct. 2005 à 03:56
Que deux lignes de code à taper, tu disais ?
22 oct. 2005 à 03:19
Ah, ben je me sens un peu bête, là ...
Quand j'ai essayé d'enregistrer le composant (ocx) avec regsvr32, il m'a été répondu erreur 80004005, ce qui semble-t-il signifie "fichier déjà ouvert". Pareil si je réessaie après avoir redémarré Windows.
Pas ça qu'il fallait faire ?
J'essaierais bien de le recompiler, mais depuis le temps qu'on dit qu'il n'y a plus besoin ...
12 oct. 2005 à 09:09
Je n'ai pas encore eu le temps de regarder plus préçisement (j'en ai pas l'utilité pour le moment).
Mais je t'ai quand même noté 10/10.
;-)
16 sept. 2005 à 22:12
1) en effet, concernant le problème de recompil du projet, cela provient du fait que dès que je compile l'ocx, vb m'enregistre l'ocx comme objet et non plus le projet lui-même dans le PrjTest...Donc en effet, il semblerait qu'un regsvr32 s'impose pour ouvrir tout cela sans problème
2)
>> Sirocooo:
je réinvente pas la poudre lol, comme le dit Renfield,c'est déjà pour pouvoir avoir un controle un peu plus sympa que ces bon vieux DriveListBox, DirListBox et FileListBox...et de plus, cela montre un aspect tout autre de VB...et j'aime me prendre la tête LOLLLL
>> Tigroo974:
no problemo et merci pour la note ;-)
>> Rey :
Je commence en effet à assez bien maitriser ce code...merci pour les félicitations...mais tu avais déjà bien déblayé le terrain...j'ai fait du tri...j'ai planter ma machine ;-$ et je me suis attaqué au listview ;-) et voilà le résultat !!!!
bon dev @ tous
14 sept. 2005 à 09:34
Outre le coté experimental, et pour prouver que VB en est capable...
Ce controle offre d'interessantes possibilités.
Il ne s'agit pas de vouloir refaire un Explorateur 100% identique...(me trompe-je ?)
Ce controle est utile, en remplacement d'un DirListBox/DriveListBox et d'un FileListBox, qui datent un peu, et ne sont pas très ergonomiques.
Yomm, tu maîtrise ce code manifestement complètement (désormais ?), mes félicitations.
13 sept. 2005 à 07:16
12 sept. 2005 à 18:36
12 sept. 2005 à 11:40
12 sept. 2005 à 09:27
Je comprends pas le problème que vous avez....Tigroo974 si tu trouves d'où viens ton problème, merci de me le faire savoir pour que je puisse corriger cela pour les autres...
Merci @+ et bon dev
12 sept. 2005 à 07:42
11 sept. 2005 à 17:06
11 sept. 2005 à 17:04
j'ai updater la source , normalement tu devrais pouvoir ouvrir le projet...
pour ton problème de menu contextuel, tu n'a qu'à désactiver le menu contextuel automatique, propriété UseContextMenu = False et tu crées le tiens... en menu popup...ensuite, si tu veux filtrer certains type de fichier utilise la propriété Pattern....et tu peux même ne pas afficher les répertoires dans le listview si cela te dit
exemple:
Call YommExplorer1.LVSub.Add(ListView1, , ,"*.mp3",False,False)
voilà bon dev @ tous
11 sept. 2005 à 13:48
J'ai le message d'erreur suivant :
Unable to set the version compatible component : C:\...\YommExplorerOCX.ocx
Du fait que cela ne marche pas chez moi, j'aurais une question : Est-t-il possible de personaliser les menus contextuels ou non (en fonction des extention de fichirs notement) ?
Merci de m'aider
11 sept. 2005 à 09:36
10 sept. 2005 à 19:52
c'est cool ke ça marche, un instant tu m'as fait peur ;-)
et merci pour la note
@+
10 sept. 2005 à 18:35
puis j'ai utilisé la méthode de DARKSIDIOUS et recompilé l'OCX et miracle ça marche super !!!!
Je mets sans hésiter un 10/10 !!
Bonne continuation.
@+
10 sept. 2005 à 17:28
DarK Sidious
10 sept. 2005 à 17:11
maintenant, si tu crées un projet tout beau tout neuf, va dans menu projet , puis composants, puis coches:
- YommExplorerOCX
- Microsoft Windows Common Controls 5.0 (SP2)"
si YommExplorerOCX n'apprait pas, un petit regsvr32 et le pb sera réglé...
enfin, sur une form, ajoutes un YommExplorer (controle avec mon avatar) puis un copier/coller du code du prjtest et normalement tout devrait fonctionner....
visiblement les autres n'ont pas eut de problème donc tu devrais pas en avoir
...
bon dev @ toi
Yom
10 sept. 2005 à 15:50
C'est très bien mais chez moi ça fonctionne si je lance le GrpYommExplorerOCX.vbg dans le dossier dézippé mais pas avec le PrjTst.vbp ni si je crée un projet à part !
J'obtiens une erreur "Type incompatible" sur la ligne:
Call YommExplorer1.LVSub.Add(ListView1, lvwReport, "c:")
Ai-je oublié quelque chose ?
@+
10 sept. 2005 à 15:30
>>DKS
content que cela te plaise...c'est vrai que tu es pas facile a convaincre !!!merci à toi.
10 sept. 2005 à 15:08
Continue comme ça.
Bonne prog
10 sept. 2005 à 13:34
Niveau rapidité, c'est vraiment très bien (on n'égale quand même pas l'explorateur de Windows, mais c'est déjà très très bien par rapport à d'autres sources !!!). Un ordre de grandeur : 8 secondes pour charer le dossier System32 sur mon poste équipé en Athlon XP 1800 +, ca va suffisament vite ! (moins d'une seconde avec l'explorateur de Windows, mais les icônes sont mises en cache, donc c'est normal que ca aille plus vite).
Pas de bug à signaler pour le moment ;)
10/10 (et c'est rare chez moi !).
Je pense que je vais utiliser ta source pour faire un explorateur Windows amélioré ;)
DarK Sidious
10 sept. 2005 à 12:48
Continu....Bon dev...
10 sept. 2005 à 11:39
J'ai créé un projet simple en incluant le controle et les "Microsoft Windows Common Controls 5.0 (SP2)" et j'ai mis les 4 lignes de code ci-dessus, j'ai compilé et ça à l'air de fonctionner...donc voilà je vous fourni le résultat de mon travail...
Si vous rencontrez quelques problèmes, n'hésitez pas à me le dire!!! Et surtout si vous etes content n'hésitez pas également à me le dire LOL!!!!!!!
bon voilà en espérant que cette version satisfera la plus part d'entre-vous !!!
Bon dev @ tous
@+