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

C++ Discussion :

Pb accès entre 2 classes static


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 62
    Points : 56
    Points
    56
    Par défaut Pb accès entre 2 classes static
    J'ai un premiere class de type static __gc class que je me sert pour faire fonctionner plusieurs threads. Celle ci possede des fonction en staic void et une variable static comme ceci dans mon fichier Gestionnaire_centrale.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public __gc class Gestionnaire_central
    {
    public:
    	static int Nbr_Place = 200 ;
     
    	Gestionnaire_central(void);
    	~Gestionnaire_central(void);
     
    	static void Incrementer_place()
    	{
    		Nbr_Place++ ;
    	}
    }
    J'accede à ma fonction Incrementer_place par le biais d'un thread initialisé et lancé dans mon fichier Form1.h comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Thread* Gestionnaire_central=new Thread(new ThreadStart(0,&Gestionnaire_central::Incrementer_place)) ;
    Gestionnaire_central->Start() ;
    J'aimerai lorsque j'entre dans ma fonction, après mon incrementation, raffraichir mon IHM et placer dans mon Edit Box, appelé place_restante, le contenu de ma variable Nbr_Place. Avec ma variables et ma fonction static je peux pas en mettant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form1::place_restante->Text=Nbr_Place.ToString() ;
    Comment faire ?
    D'avance merci

  2. #2
    jmv
    jmv est déconnecté
    Membre confirmé Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Points : 603
    Points
    603
    Par défaut
    salut,
    quand j'ai ce genre de problème, j'utilise un timer pour le rafraichissement de l'IHM.
    Si quelqu'un a mieux, je suis aussi preneur.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 62
    Points : 56
    Points
    56
    Par défaut
    L'idee du timer est une bonne idée.
    Dans mon fichier "Form1.h" j'ai donc créé une fonction Afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void Afficher()
    {
    	int temp ;
    	temp = Gestionnaire_central::Nbr_Place ;
    	place_dispo->Text=temp.ToString() ;
    }
    Cette fonction et donc interne à ma classe Form1 et j'aimerai l'appelé toute les 5sd. Comment faire par un timer ?
    D'avance merci.
    Damien

  4. #4
    jmv
    jmv est déconnecté
    Membre confirmé Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Points : 603
    Points
    603
    Par défaut
    tu développe avec quoi ?

    sous visual studio (si mes souvenirs sont bons )
    - tu crée un timer dans ta "form"
    - tu l'active (propriété enabled = true)
    - tu regle la période : 5000ms
    - en double-cliquant dessus, visual te crée une fonction vide, dans cette fonction tu appele Afficher()

    sous Builder, je crois que c'est + ou - pareil.

    voilà j'espère que je ne me suis pas trop trompé, j'ai pas visual sous la main.

    a++ jmv

    PS: change ton titre ou repose ta question sur un forum plus approprié (Builder ou Visual)

  5. #5
    Membre habitué Avatar de CriPpLe
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 157
    Points : 125
    Points
    125
    Par défaut
    Salut

    Pour visual, t'as la faq qui répond à cette question, voir ici
    Sinon pour c++ builder, la faq n'en parle pas.

  6. #6
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 62
    Points : 56
    Points
    56
    Par défaut
    Merci de vos réponse mais pour la création du timer en application .Net ca peut pas se créer comme cela.
    Comment faire ?
    D'avance merci.
    Damien

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

Discussions similaires

  1. Accès entre classes
    Par gaetan13 dans le forum VB.NET
    Réponses: 9
    Dernier message: 02/10/2013, 13h47
  2. Problème accès aux propriétés entre deux classes liées par many-to-one
    Par moha1984 dans le forum Persistance des données
    Réponses: 1
    Dernier message: 21/06/2010, 10h07
  3. Acces entre différentes classes
    Par Microturnip dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 14/05/2008, 10h24
  4. Comparaison entre les classes et les fonctions
    Par Ashgenesis dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 08/09/2005, 19h09
  5. Réponses: 5
    Dernier message: 17/08/2005, 12h40

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