IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Partager des informations entre callback et programme


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 72
    Points : 48
    Points
    48
    Par défaut Partager des informations entre callback et programme
    Bonjour

    J'ai un programme qui utilise une fonction callback. Ceci dit, j'aimerais partager des informations entre le programme et le callback, ce qui m'est impossible.

    Je ne sais pas pourquoi, ni comment faire.

    Auriez vous des pistes de recherche?

    Merci d'avance

    David

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Avec une description aussi précise et circonstanciée, il est évident que les réponses vont pleuvoir.

    (au fait : quelqu'un a déjà vu un programme qui n'utilisait pas une méthode de callback à un endroit ou à un autre ????)

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 72
    Points : 48
    Points
    48
    Par défaut
    Le problème est que lorsque l'on passe dans le callback, la donnée membre "pointeur_texte" ne permet plus d'acceder au RichTextBox
    et le changement de valeur de "m_marqueur" n'est pas pris en compte.

    Pourquoi?

    Voilà le code incriminé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
        public class CRobot : GridClient
        {
            public RichTextBox pointeur_texte;
            public SqlConnection m_connexion;
            public RichTextBox m_rich_text_box;
     
            public EEtatRobot m_etat_robot;
     
            public static string m_marqueur="Valeur initiale 0";
     
            //*********************************************************************************************************
            //
            //
            //
            //---------------------------------------------------------------------------------------------------------
            public CRobot(SqlConnection p_connexion, RichTextBox p_rich_text_box)
            {
                m_rich_text_box = p_rich_text_box;
                m_connexion = p_connexion;
     
                Self.OnInstantMessage += new AgentManager.InstantMessageCallback(Self_OnInstantMessage);
                this.Network.OnLogin += new NetworkManager.LoginCallback(Network_OnLogin);
                //this.Network.OnSimConnecting += new NetworkManager.SimConnectingCallback(
            }
            //*********************************************************************************************************
            //
            // Callback reception IM
            //
            //---------------------------------------------------------------------------------------------------------
            private void Self_OnInstantMessage(InstantMessage im, Simulator simulator)
            {
                 affiche_texte("Self_OnInstantMessage A - m_marqueur='" + m_marqueur + "'");
     
                m_marqueur = "Passage dans le callback detecte";
     
                affiche_texte("Self_OnInstantMessage B - m_marqueur='" + m_marqueur + "'");
    ...

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    OK. C'est en effet un peu plus clair avec un bout de source.

    Quelle est la nature de l'objet "Self" ?

    Le callback s'effectue-t-il dans le même thread que celui qui a crée l'instance de l'objet appelant le callback ?

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 72
    Points : 48
    Points
    48
    Par défaut
    J'ai trouvé ce qui posait problème

    en retirant les appels à "affiche_texte" dans le callback, la valeur de la donnée m_marqueur a bien été modifiee.
    Les erreurs ou exceptions levees dans le callback ne s'affichent probablement pas et font echouer l'appel du callback.

    C'est plutôt moyen comme fonctionnement

    Merci pour ton aide cher ami

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Partage des fichiers entre projets Eclipse
    Par laura_cornel dans le forum Eclipse Java
    Réponses: 9
    Dernier message: 11/12/2006, 11h52
  2. Réponses: 3
    Dernier message: 05/07/2006, 11h59
  3. Quelle solution pour partager des données entre Linux ?
    Par herzleid dans le forum Administration système
    Réponses: 5
    Dernier message: 03/04/2006, 16h19
  4. [win] problème pour partager des fichiers entre 2 pc
    Par goma771 dans le forum Administration
    Réponses: 1
    Dernier message: 01/12/2005, 16h15
  5. [C#] Transférer des informations entre 2 formulaires
    Par monoeilouais dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/07/2004, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo