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

Composants VCL Delphi Discussion :

[TChart] Comment empiler plusieurs séries ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 188
    Points : 113
    Points
    113
    Par défaut [TChart] Comment empiler plusieurs séries ?
    Bonjour,
    Je débute TChart.
    Je voudrais savoir comment on fait pour empiler plusieurs séries
    précédemment créé a la main.
    Voici mon code
    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
     
      //Effacement des séries
      Chart1.SeriesList.Clear;
      for i := 1 to StringGrid1.RowCount - 1 do
      begin
     
          //1 ligne = 1 série
          cs := TBarSeries.Create(Self);      // histogramme
          cs.Title := StringGrid1.Cells[0, i];
          //NE SURTOUT PAS OUBLIER CECI :
          cs.ParentChart := Chart1;
          for j := 1 to StringGrid1.ColCount - 1 do
            //Ajout des valeurs à la série
            cs.Add(StrToIntDef(StringGrid1.Cells[j, i], 0), StringGrid1.Cells[j, 0]);
        end;
    Par contre, là les seris sont cote a cote, mais je les veux empiler.
    Je cherche la fonction, en vain.

    Merci

  2. #2
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 171
    Points : 126
    Points
    126
    Par défaut
    Bonjour,

    J'ai trouvé dans l'aide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TMultiBar = (mbNone, mbSide, mbStacked, mbStacked100);
    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Series1.MultiBar:=mbSide;
    En conception, un double-clic sur le graphe puis onglet SERIES puis onglet FORMAT, c'est (en bas à gauche) dans le groupbox Histogramme multiple.

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 188
    Points : 113
    Points
    113
    Par défaut
    oui, j'ai vu ca, mais je n'arrive pas a me servir de la propriété multibar, elle nest pas reconnue !

    heeeelp

  4. #4
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 171
    Points : 126
    Points
    126
    Par défaut
    J'ai créé un histogramme avec 2 barres cote à cote, puis par programme, je l'ai modifié en barres empilées avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Series1.MultiBar:=mbStacked100;
    J'ai testé et ça marche. Est-ce autre chose ???

  5. #5
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 188
    Points : 113
    Points
    113
    Par défaut
    Oui, en effet, j'ai essayé et ca marche avec mbStacked100
    mais pas avec les autres .....mbStacked, mbSide

  6. #6
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 171
    Points : 126
    Points
    126
    Par défaut
    Je viens de tester et ça marche très bien.

  7. #7
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 188
    Points : 113
    Points
    113
    Par défaut
    j'ai un stringgrid et un tchart
    Voici mon code sur le clic d'un bouton
    Où est mon erreur ?
    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
    38
    39
    40
    41
    42
    43
    44
    45
     
      //Remplissage  du TStringGrid
     
      StringGrid1.Cells[0,1] := '1 : toto';
      StringGrid1.Cells[0,2] := '2 : blé';
      StringGrid1.Cells[0,3] := '3 : orge';
      StringGrid1.Cells[0,4] := '4 : betteraves';
     
      StringGrid1.Cells[1,0] := '2001';
      StringGrid1.Cells[2,0] := '2002';
      StringGrid1.Cells[3,0] := '2003';
      StringGrid1.Cells[4,0] := '2004';
     
      for i := 1 to StringGrid1.RowCount - 1 do
        for j := 1 to StringGrid1.ColCount - 1 do
          //Remplissage avec des valeurs aléatoires
          StringGrid1.Cells[j, i] := IntToStr(Random(60) + 40);
     
     
                  // gestion du chart
     
     
      //Effacement des séries 4 séries
      Chart1.SeriesList.Clear;
     
     
      for i := 1 to StringGrid1.RowCount - 1 do
      begin
     
        //1 ligne = 1 série
        cs := TBarSeries.Create(Self);
        cs.Title := 'series' + intToStr(i);
     
        //NE SURTOUT PAS OUBLIER CECI :
        cs.ParentChart := Chart1;
     
        for j := 1 to StringGrid1.ColCount - 1 do
         begin
          //Ajout des valeurs à la série
          cs.Add(StrToIntDef(StringGrid1.Cells[j, i], 0)); //, StringGrid1.Cells[j, 0]);
         end;
      end;
        series1.MultiBar := mbStacked100;
     
        end;

  8. #8
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 171
    Points : 126
    Points
    126
    Par défaut
    J'ai testé le code suivant et ça marche parfaitement :
    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
    38
    procedure TForm1.Button1Click(Sender: TObject);
    var I,J:integer;
        cs:TBarSeries;
    begin
     //Remplissage  du TStringGrid
     
      StringGrid1.Cells[0,1] := '1 : toto';
      StringGrid1.Cells[0,2] := '2 : blé';
      StringGrid1.Cells[0,3] := '3 : orge';
      StringGrid1.Cells[0,4] := '4 : betteraves';
     
      StringGrid1.Cells[1,0] := '2001';
      StringGrid1.Cells[2,0] := '2002';
      StringGrid1.Cells[3,0] := '2003';
      StringGrid1.Cells[4,0] := '2004';
     
      for i := 1 to StringGrid1.RowCount - 1 do
        for j := 1 to StringGrid1.ColCount - 1 do
          //Remplissage avec des valeurs aléatoires
          StringGrid1.Cells[j, i] := IntToStr(Random(60) + 40);
     
                  // gestion du chart
     
      //Effacement des séries 4 séries
      Chart1.SeriesList.Clear;
     
      for i := 1 to StringGrid1.RowCount - 1 do
      begin
        //1 ligne = 1 série
        cs := TBarSeries.Create(Self);
        cs.Title := 'series' + intToStr(i);
        //NE SURTOUT PAS OUBLIER CECI :
        cs.ParentChart := Chart1;
        for j := 1 to StringGrid1.ColCount - 1 do //Ajout des valeurs à la série
          cs.Add(StrToIntDef(StringGrid1.Cells[j, i], 0)); //, StringGrid1.Cells[j, 0]);
      end;
        series1.MultiBar := mbStacked100;
    end;
    Quel message d'erreur est exactement renvoyé par Delphi ?

  9. #9
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 188
    Points : 113
    Points
    113
    Par défaut
    pas de message d'erreur ! la premiere fois que je clique sur le bouton, ca marche, mais pas la deuxième ...
    De plus, essayes avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    series1.MultiBar := mbStacked;
    ca marche pas du tout !

  10. #10
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 171
    Points : 126
    Points
    126
    Par défaut
    Si ça marche.

    J'ai Delphi 7 Pro.

  11. #11
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 188
    Points : 113
    Points
    113
    Par défaut
    J'ai trouvé !
    Il faut initialiser dans la boucle, avec le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    If cs.Title = 'series1' then
        series1.MultiBar := mbSide;
    puis ca marche a chaque fois.
    C'est bizarre, mais c'est ca !

    J'ai delphi 7 entreprise, peut etre qu'il réagit différement.
    Au moins je savais que c'était pas le code, merci.


    ENFIN

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    salut kelkun pourrait me dire ou on peut trouve de l'aide en francais du tchart ou du teechart ? ou bien m'en envoyer . Voici mon email : josswel@caramail.com ou josswel@yahoo.fr.
    MErci d'avance

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/11/2008, 16h42
  2. Comment mettre plusieurs objets ds un composant ?
    Par Fleury dans le forum Composants VCL
    Réponses: 7
    Dernier message: 24/05/2003, 17h34
  3. Réponses: 2
    Dernier message: 05/12/2002, 16h55
  4. comment gerer plusieurs connexions client/serveur
    Par naili dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/08/2002, 16h58
  5. [TChart] comment remplir un histogramme avec du rouge strié.
    Par :GREG: dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/08/2002, 09h37

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