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 !

YOMMEXPLOREROCX POUR CE QUI VEULENT UN VRAI EXPLORATEUR WINDOWS


Information sur la source

Catégorie :Control Classé sous : explorer, dossier, fichier, explorateur, yomm Niveau : Expert Date de création : 10/09/2005 Date de mise à jour : 06/04/2006 16:04:36 Vu / téléchargé: 10 487 / 1 924

Note :
9,95 / 10 - par 21 personnes
9,95 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (76)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
voilà après quelques temps de réflexion j'ai trouvé la solution à la première version de cette objet qui avait quelques problème une fois compilé...en effet, en DLL ActiveX, le projet ne fonctionnait plus, alors j'ai passé tout cela en ocx et là cela semble fonctionner...

petit rappel sur cet objet :

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 OCX (et non plus dll...) pour ceux qui ne seraient pas encore convaincus:
- et bien déjà c'est un ocx !!!!!!! seule l'ajout d'un controle YommExplorer 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 fenetres...Pour une deuxième fenetre vous rajouter le YommExplorer 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...) ce qui implique une traduction automatique en fonction de la langue de l'OS
- pour la flèche affichée lors de tri dans le titre d'une colonne en mode lvwReport (détail), elle est également prise du fichier shell32.dll donc l'image n'est pas fixée dans la dll (encore quelque chose de dynamique !!!)

ç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

  • Option Explicit
  • Private Sub Form_Load()
  • Call YommExplorer1.LVSub.Add(ListView1,)
  • Call YommExplorer1.TVSub.Add(TreeView1, ListView1)
  • End Sub
Option Explicit

Private Sub Form_Load()
    Call YommExplorer1.LVSub.Add(ListView1,)
    Call YommExplorer1.TVSub.Add(TreeView1, ListView1)
End Sub

Conclusion

Alors toujours pas convaincu ????????

Petite info:
pour utiliser cet ocx , vous devez ajouter à votre projet :
- la référence à l'ocx (YommExplorerOCX)
- les composants "Microsoft Windows Common Controls 5.0 (SP2)"

 

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

Historique

11 septembre 2005 16:58:12 :
Certains semblaient avoir des problèmes pour ouvrir le projet (obligation de recompiler l'ocx...) en fait, le problème venait de la déclaration du projet YommExplorerOCX dans le projet PrjTest, il y avait une référence à l'ocx et non au projet lui même donc voilà j'ai modifier la référence... Donc petit rappel, n'utilisez pas le prjtest seul, mais ouvrez le fichier vbg... pour ce qui veulent recompiler l'ocx, iol suffit de se mettre sur le projet YommExplorerOCX et dans le menu fichier de recréer l'ocx...voilà...
16 septembre 2005 22:01:44 :
*Corrections: - problème d'affichage de colonnes et de navigation en mode détail - problème d'affichage de colonnes sur des répertoires vides en mode détail *Coté code: suppression de la variable m_isfParentFolder (variable liée à la navigation via les touches [ENTER] et [RETURN] et au tri des items), variable inutile car pouvant être récupérée autrement.
24 octobre 2005 19:55:38 :
- modif liée au problème de l'utilisation avec 2 treeviews : problème de raffraichissement du Treeview1
25 octobre 2005 18:25:44 :
- correction concernant la propriété ExpandPath dans TVSub.Add et TVPath Explication du problème: Lorsque la racine du Treeview ne permettait pas une arborescence cohérente, cad depuis le bureau ou le poste de travail, alors la fonction d’ouverture des branches n’était pas capable de reconnaître le chemin correct à ouvrir. Ceci est corrigé suite aux problèmes de JoBleu, en effet, en paramétrant par exemple une arborescence commençant au "menu démarrer" de tous les utilisateurs, pour ouvrir la branche " Programmes\Démarrage " vous pouvez désormais utiliser : ExpandPath = Menu Démarrer\Programmes\Démarrage ou bien le chemin complet à savoir : "C:\Documents and Settings\All Users\Menu Démarrer\Programmes".
06 avril 2006 16:04:36 :
- correction pour pouvoir obtenir le nom réel d'un fichier du listview dans le cas où l'on affiche pas les extensions des fichiers dont le type est connu (cas de RIKKUFF) pour l'utilisation : item.text retourne le nom affiché item.tag retourne le nom complet avec l'extention (.tag ne retourne rien si ce n'est pas un fichier...à vous de tester si .tag="" alors .text)

Commentaires et avis

signaler à un administrateur
Commentaire de yomm le 10/09/2005 11:39:29

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

Bon dev @ tous

@+

signaler à un administrateur
Commentaire de Willi le 10/09/2005 12:48:09 administrateur CS

Marche impéccable ! 10/10
Continu....Bon dev...

signaler à un administrateur
Commentaire de DARKSIDIOUS le 10/09/2005 13:34:02 administrateur CS

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

signaler à un administrateur
Commentaire de Charles Racaud le 10/09/2005 15:08:47

Superbe, rien à dire, ça marche vraiment très bien, bref 10/10
Continue comme ça.
Bonne prog

signaler à un administrateur
Commentaire de yomm le 10/09/2005 15:30:04

Merci à vous trois !

>>DKS
content que cela te plaise...c'est vrai que tu es pas facile a convaincre !!!merci à toi.

signaler à un administrateur
Commentaire de Mikaels35 le 10/09/2005 15:50:39

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:

Call YommExplorer1.LVSub.Add(ListView1, lvwReport, "c:\")

Ai-je oublié quelque chose ?

@+

signaler à un administrateur
Commentaire de yomm le 10/09/2005 17:11:59

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

signaler à un administrateur
Commentaire de DARKSIDIOUS le 10/09/2005 17:28:50 administrateur CS

Non, une fois compilé (pour l'enregistrer dans le registre), ton ocx marche très bien !

DarK Sidious

signaler à un administrateur
Commentaire de Mikaels35 le 10/09/2005 18:35:05

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.

@+

signaler à un administrateur
Commentaire de yomm le 10/09/2005 19:52:11

>>Mikaels35
c'est cool ke ça marche, un instant tu m'as fait peur ;-)
et merci pour la note

@+

signaler à un administrateur
Commentaire de pluplu le 11/09/2005 09:36:06

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!

signaler à un administrateur
Commentaire de PaTaTe le 11/09/2005 13:48:54

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

signaler à un administrateur
Commentaire de yomm le 11/09/2005 17:04:11

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

signaler à un administrateur
Commentaire de PaTaTe le 11/09/2005 17:06:36

ok merci :) 10/10

signaler à un administrateur
Commentaire de tigroo974 le 12/09/2005 07:42:33

super boulot. je mettrai ma note dès que je le pourrai car pour l'instant ca marche pas!!

signaler à un administrateur
Commentaire de yomm le 12/09/2005 09:27:06

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

signaler à un administrateur
Commentaire de Sirocooo le 12/09/2005 11:40:06

C'est bien mais pourquoi réinventer la poudre ?

signaler à un administrateur
Commentaire de Unreal le 12/09/2005 18:36:50

je connaissais deja ce controle ;)

signaler à un administrateur
Commentaire de tigroo974 le 13/09/2005 07:16:42

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

signaler à un administrateur
Commentaire de Renfield le 14/09/2005 09:34:26 administrateur CS

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.

signaler à un administrateur
Commentaire de yomm le 16/09/2005 22:12:20

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

signaler à un administrateur
Commentaire de acecel le 12/10/2005 09:09:48

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

signaler à un administrateur
Commentaire de JoBleu le 22/10/2005 03:19:13

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

signaler à un administrateur
Commentaire de JoBleu le 22/10/2005 03:56:45

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 ?

signaler à un administrateur
Commentaire de JoBleu le 22/10/2005 04:23:07

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.

signaler à un administrateur
Commentaire de JoBleu le 22/10/2005 07:28:32

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

signaler à un administrateur
Commentaire de yomm le 24/10/2005 20:00:35

>>JoBleu

merci pour tes commentaires, j'ai mis à jour pour corriger le pb de l'utilisation avec plusieurs Treeviews

@+ et bon dev

signaler à un administrateur
Commentaire de yomm le 24/10/2005 20:07:37

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

signaler à un administrateur
Commentaire de yomm le 25/10/2005 18:32:43

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

signaler à un administrateur
Commentaire de violent_ken le 31/10/2005 13:42:55

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

signaler à un administrateur
Commentaire de violent_ken le 31/10/2005 13:47:06

Ah oui, je précise qu'avec regsvr32, çà marche pas...

signaler à un administrateur
Commentaire de DARKSIDIOUS le 31/10/2005 13:57:30 administrateur CS

Décoche la compatibilité (binaire ou des projets) dans les options du projet pour pouvoir recompiler l'ocx, et ensuite, remets là.

DarK Sidious

signaler à un administrateur
Commentaire de JoBleu le 31/10/2005 14:11:37

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.

signaler à un administrateur
Commentaire de violent_ken le 31/10/2005 14:41:04

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.

@+

signaler à un administrateur
Commentaire de violent_ken le 31/10/2005 14:57:10

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 !!
@+

signaler à un administrateur
Commentaire de violent_ken le 31/10/2005 15:02:22

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)
@+

signaler à un administrateur
Commentaire de DARKSIDIOUS le 31/10/2005 15:19:29 administrateur CS

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

signaler à un administrateur
Commentaire de violent_ken le 31/10/2005 16:03:25

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  !!
@+

signaler à un administrateur
Commentaire de yomm le 31/10/2005 16:13:52

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 san