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++Builder Discussion :

Affichage d'un Tchart


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 143
    Par défaut Affichage d'un Tchart
    Bonjour a tous

    J'ai quelques soucis avec un Tchart dans un de mes projets bcb6.
    J'ai graphiquement créé une série pour ce Tchart, mais malheureusement, les valeurs de cette série (que j'attribue par code), ne s'affichent pas dans le graphe. faut-il ajouter un code supplémentaire en plus du addXY(..)?

    Merci

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Normalement il n'y a rien d'autre à faire que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Series1->AddXY( valueX, valueY , "", clBlue );
    Est ce que ta Series est bien présente dans ton TChart (propriété SeriesList du TChart)?

  3. #3
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 143
    Par défaut
    De ce côté là, y a pas de problème.

    En fait je viens de me rendre compte de l'erreur. Mon code était le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for (i=0;i<nbreCol;i+=1)
    {
      Series1->AddXY(i,i+1);
    }
    Or la variable nbreCol est définie dans une autre unité dont j'ai inclus le fichier cpp dans celle-ci (directive include). Cependant, le passage dans la boucle n'est pas effectif, comme si nbreCol gardait la valeur 0. Pourtant en débogage pas à pas, cette variable a bien la valeur affectée dans le formulaire précédent.

    Là je me demande comment faire pour que des variables soient visibles dans tous les fichiers de mon projet.

    Merci

  4. #4
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Or la variable nbreCol est définie dans une autre unité
    .
    Et elle est définie comment?

    Pour utiliser une variable d'un autre objet (dans ton cas un TForm), tu peux utiliser une donnée membre en public:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //Dans ton *.h:
    class TForm2 : public TForm
    //[...]
    public:
       int nbreCol ;
    {
    Ensuite pour y accéder depuis une autre Form tu as juste un faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (i=0; i< Form2->nbreCol; i++ )
    {
      Series1->AddXY( i, i+1);
    }
    Une autre solution (que je privilégierais) est d'utiliser une donnée membre privée, avec un accès publié via __property:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //Dans ton *.h:
    class TForm2 : public TForm
    //[...]
    private:
       int FnbreCol ;
    //[...]
    __published:
        __property int nbrCol = { read=FnbreCol , write=FnbreCol };
    {

  5. #5
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 143
    Par défaut
    Citation Envoyé par sat83 Voir le message
    .
    Et elle est définie comment?

    Pour utiliser une variable d'un autre objet (dans ton cas un TForm), tu peux utiliser une donnée membre en public:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //Dans ton *.h:
    class TForm2 : public TForm
    //[...]
    public:
       int nbreCol ;
    {
    Ensuite pour y accéder depuis une autre Form tu as juste un faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (i=0; i< Form2->nbreCol; i++ )
    {
      Series1->AddXY( i, i+1);
    }
    Une autre solution (que je privilégierais) est d'utiliser une donnée membre privée, avec un accès publié via __property:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //Dans ton *.h:
    class TForm2 : public TForm
    //[...]
    private:
       int FnbreCol ;
    //[...]
    __published:
        __property int nbrCol = { read=FnbreCol , write=FnbreCol };
    {
    j'ai opté pour la première possibilité parce que la deuxième est un peu floue pour moi, je ne la cerne pas.
    Avec la première option, le code compile sans erreur. Cependant, j ai un gros problème: à l'exécution il y a ce message qui s'affiche classe d'exception EAccessViolation avec le message 'Violation d'accès à l'adresse 0040376A.lecture de l'adresse 00000378.processus stoppé..
    Face à cela , j'ai mis une étoile devant le nom de la variable, comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    *frmAccueil->nbreCol
    Là, j'ai ce message d'erreur à la compilation:
    E2062 indirection incorrecte
    Sur ce, je suis complètement larguée.

Discussions similaires

  1. Tchart et affichage de graphe type bourse
    Par nicola40 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 21/01/2010, 18h05
  2. [Lazarus] Affichage du temps sur l'abscisse de TChart
    Par showza dans le forum Lazarus
    Réponses: 8
    Dernier message: 30/03/2009, 14h05
  3. Affichage d'un TChart (graphique) en échelle logarithmique
    Par stillman dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/04/2007, 17h25

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