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

Résolu
fourne Messages postés 25 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 19 juillet 2012 - 13 juil. 2012 à 15:18
 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

3 réponses

Utilisateur anonyme
13 juil. 2012 à 16:07
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)

3
fourne Messages postés 25 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 19 juillet 2012
13 juil. 2012 à 22:08
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
0
Utilisateur anonyme
14 juil. 2012 à 14:20
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
0
Rejoignez-nous