Lier des instances d'ActiveX [Résolu]

edt992 18 Messages postés mercredi 19 juillet 2006Date d'inscription 10 avril 2008 Dernière intervention - 14 févr. 2007 à 15:56 - Dernière réponse : edt992 18 Messages postés mercredi 19 juillet 2006Date d'inscription 10 avril 2008 Dernière intervention
- 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 !
Afficher la suite 

Votre réponse

5 réponses

edt992 18 Messages postés mercredi 19 juillet 2006Date d'inscription 10 avril 2008 Dernière intervention - 19 févr. 2007 à 09:35
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de edt992
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 14 févr. 2007 à 16:17
0
Utile
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
Commenter la réponse de jrivet
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 14 févr. 2007 à 16:27
0
Utile
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
Commenter la réponse de cs_DARKSIDIOUS
edt992 18 Messages postés mercredi 19 juillet 2006Date d'inscription 10 avril 2008 Dernière intervention - 14 févr. 2007 à 16:44
0
Utile
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...
Commenter la réponse de edt992
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 14 févr. 2007 à 17:23
0
Utile
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 ;)
Commenter la réponse de cs_DARKSIDIOUS

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.