Récupérer un object initialisé dans une form depuis une autre form [Résolu]

Messages postés
25
Date d'inscription
vendredi 14 février 2003
Dernière intervention
19 juillet 2012
- - Dernière réponse :  Utilisateur anonyme - 14 juil. 2012 à 14:20
Bonjour,


voilà j'ai repris le Vb après 5-6 ans d'absence, et je suis actuellement en train de faire un client Jabber avec la librairie agsXmpp.

Jusqu'ici tout marche bien ( gestion de la contact list, ouverture d'une nouvelle fenêtre avec récupération des informations du contact selectionné depuis la contactlist, etc.)

Ma question va peut-être paraître stupide mais voilà :

J'ai mon objet agsxmpp qui est donc une instance de la librairie qui me permet de me connecter au serveur jabber et de recuperer les messages arrivant, la contact list, la presence, etc. dans ma form principale.

Lorsqu'on clique sur la contact list de la fenêtre principale, on ouvre une seconde dorm qui récupère les informations du contact selectionné : Seulement voilà je déclare une variable dans la seconde form pour récupérer mon objet de connexions de la fenêtre principale et là rien ne marche ....

petit exemple de code (fenêtre principale):

objXmpp = New agsXMPP.XmppClientConnection
            Dim jid As agsXMPP.Jid
            jid = New agsXMPP.Jid(strLogin + "@domain.fr")

            objXmpp.Password = strPass
            objXmpp.Username = jid.User
            objXmpp.Server = jid.Server
            objXmpp.open()


appel de l'object depuis la seconde fenetre
Public Class chat
    Dim main As New Main   'Main est le nom de la fenêtre principale
    private sub unefonction_declenchant_lenvoi_dun_message
        main.objXmpp.Send(message)


Si quelqu'un à une idée, c'est fantastique !



Mieux vaut tard que deux tu l'auras
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
3
Merci
Bonsoir,

on ouvre une seconde dorm qui récupère les informations du contact selectionné

Pourquoi ne passes tu pas l'objet construit dans ta form principale dans le constructeur New de la seconde fenêtre :
Public Class chat
    dim monobj as agsXMPP.XmppClientConnection
    sub new(obj as agsXMPP.XmppClientConnection)
      monobj = obj
    end sub
    private sub unefonction_declenchant_lenvoi_dun_message
        monobj.Send(message)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 111 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
25
Date d'inscription
vendredi 14 février 2003
Dernière intervention
19 juillet 2012
0
Merci
Super je vais essayer cela,


En revanche petite question : ou dois je passer l objet dans la form principale au moment du :


chat.shox (objXmpp ) ' chat est la seconde form

??

Mieux vaut tard que deux tu l'auras
Commenter la réponse de fourne
0
Merci
Bonjour,

Pour compléter l'exemple ci-dessus, il faut instancier ta form 'chat' et lui passer l'objet objXmpp dans le contructeur :
Dim MonChat as new chat(objXmpp)
Monchat.show


-----------------------

Mais tu peux aussi lui passer cet objet par une propriété :
Dim MonChat as new chat
Monchat.ObjetConnexion = objXmpp
MonChat.Show
 

Bien entendu après avoir conçu le code de cette propriété dans le formulaire chat :
writeonly property ObjetConnexion as agsXMPP.XmppClientConnection
set(value as agsXMPP.XmppClientConnection)
    monobj = value
end set
end property
Commenter la réponse de Utilisateur anonyme

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.