Lier des instances d'ActiveX

Résolu
edt992 Messages postés 18 Date d'inscription mercredi 19 juillet 2006 Statut Membre Dernière intervention 10 avril 2008 - 14 févr. 2007 à 15:56
edt992 Messages postés 18 Date d'inscription mercredi 19 juillet 2006 Statut Membre Dernière intervention 10 avril 2008 - 19 févr. 2007 à 09:35
Bonjour,

Je développe un contrôle ActiveX (appelons-le "A"). Ce contrôle ActiveX "A" peut être utilisé plusieurs fois dans une application, soit directement, en mettant ce contrôle ActiveX "A" dans une ou plusieurs Form de l'application, soit indirectement, en utilisant d'autres contrôle ActiveX que j'ai développé et qui utilise aussi ce contrôle ActiveX "A".

(jusqu'à là, je ne sais pas si je suis clair, parce que c'est après que ça se complique... )

Ces différentes instances de mon ActiveX "A" doivent rester différentes, avec un appel à UserControl_Initialize et à UserControl_Terminate pour chacun d'eux, mais chacun d'eux doit pouvoir appeler un évenement à tous les autres (en appeler une fonction donné de cet ActiveX pour chaque instance).

En gros, par exemple, une solution serait que chaque instance de mon ActiveX puisse accéder à une collection (qui elle serait unique, et pas une par instance), dans laquelle chaque ActiveX se rajouterait lors de son initialisation, et que permettrait à chacun de pouvoir contacter toutes les autres instances.

(j'espère ne pas avoir perdu trop de monde, là...)

Je ne sais pas du tout dans quelle direction chercher... Donc si quelqu'un peut me mettre sur une piste, ça serait super !

Merci !

5 réponses

edt992 Messages postés 18 Date d'inscription mercredi 19 juillet 2006 Statut Membre Dernière intervention 10 avril 2008
19 févr. 2007 à 09:35
Bonjour,

En fait, il suffit tout bêtement que je crée ma variable collection dans un module. Il n'y en a alors qu'une seule instance, accessible depuis toutes les instances de mon contrôle. Je crée la collection par un "new collection" à la première utilisation s'il y a Nothing dedans
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
14 févr. 2007 à 16:17
Salut,
Pourqoui ne pas essayer de passer l'UNIQUE collection à tout tes ActiveX? si tu la passe en référence elle restera unique et pourra être utiliser par chaque ActiveX.

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 févr. 2007 à 16:27
Sinon, en accèdant au parent de ton usercontrol, et en énumérant les control de ce parent, ca suffirait pas ?

For Each oControl In usercontrol.Parent.Controls

    if typeof oControl is TonActiveX Then

    end if

next oControl
0
edt992 Messages postés 18 Date d'inscription mercredi 19 juillet 2006 Statut Membre Dernière intervention 10 avril 2008
14 févr. 2007 à 16:44
Tout d'abord, merci pour vos réponses.

La solution de jrivet n'ai pas vraiment adapté, car elle rend nettement moins hergonomique l'utilisation de mon contrôle. Mon but est de proposer une boite à outils de contrôles simples d'emploi pour d'autres développeurs. Je préfèrerais que chaque contrôle s'enregistre lui-même sans avoir rien à faire pour le développeur qui utilise mon contrôle dans son application.

Pour la solution de Darksidious, l'attribut parent me retourne la form parent, or comme je le disais, les autres instances de mon contrôle sont dans d'autres form de l'application. Et comme mon contrôle est encapsulé dans plusieurs autres contrôles, ça complique encore plus les choses...

PS: que dois-je faire avec le bouton "Réponse acceptée" ? Je dois valider toutes les réponses ?... Désolé, je suis nouveau...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 févr. 2007 à 17:23
Non le bouton réponse accepté te permet juste de valider le post qui t'a donné la solution à ton problème => à n'utiliser qu'une fois qu'une réponse te convient afin de dire aux autres membres que c'est bon, ils peuvent circuler, y'a plus rien à voir ;)
0
Rejoignez-nous