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 :

Séries de couleurs & Légende Teechart


Sujet :

Composants VCL Delphi

  1. #1
    Membre habitué Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 260
    Points : 171
    Points
    171
    Par défaut Séries de couleurs & Légende Teechart
    Bonjour,

    Impossible d’appliquer de la couleur à la légende.

    lorsque je crée une seule série la couleur de la légende s’applique correctement, en revanche si je crée une deuxième série les couleurs de la légende ne sont plus appliquées.

    Nom : Capture.png
Affichages : 62
Taille : 23,4 Ko

    Y a-t-il un paramètre à appliquer pour avoir toutes les couleurs des séries dans la légende ?

    { Initialize }
    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
    { Initialize_Chart }
    procedure TFChart.Initialize_Chart;
    var
      I, ICol, IRow: Integer;
    begin
      for I := 0 to Chart.SeriesCount - 1 do
        Chart.Series[I].Clear;
     
      for ICol := 0 to Data.ColCount - 1 do
        for IRow := Data.FixedRows to Data.RowCount - 1 do
          Data.Cells[ICol, IRow] := EmptyStr;
    end;
     
    { Initialize_ListClrChart }
    procedure TFChart.Initialize_ListClrChart;
    var
      I: Integer;
    begin
      with ListClrChart do
      begin
        Clear;
     
        for I := 0 to Chart.SeriesCount - 1 do
          Items.AddObject('Série ' + InttoStr(I + 1), TObject(clWhite));
     
        Items.AddObject('Quadrillage', TObject(clSilver));
        Items.AddObject('Axes', TObject(clBlack));
        Items.AddObject('Bordure', TObject(clBlack));
        Items.AddObject('Marqueurs de données', TObject(clBlack));
      end;
    end;
     
    { Initialize_ListNameSeries }
    procedure TFChart.Initialize_ListNameSeries;
    var
      I: Integer;
    begin
      for I := 0 to ListNameSeries.RowCount - 1 do
      begin
        ListNameSeries.Cells[1, I] := EmptyStr;
        Chart.Series[I].Title := 'Série ' + InttoStr(I + 1);
        ListNameSeries.Refresh;
      end;
    end;
    { BuildChart }
    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
    procedure TFChart.BuildChart;
    var
      I, IRow, ICol: Integer;
    begin
      for I := 0 to Chart.SeriesCount - 1 do
        Chart.Series[I].Clear;
     
      for I := 0 to Chart.SeriesCount - 1 do
      begin
        if not Chart.Series[I].Visible then
          continue;
     
        Chart.Series[I].Title := ListNameSeries.Cells[1, I];
     
        if Chart.Series[I].Title = EmptyStr then
          Chart.Series[I].Title := 'Série ' + InttoStr(I + 1);
     
        for IRow := Data.FixedRows to Data.RowCount - 1 do
        begin
          ICol := I + 1;
     
          if Data.Cells[ICol, IRow] <> EmptyStr then
            Chart.Series[I].Add(StrToInt(Data.Cells[ICol, IRow]), Data.Cells[I, IRow],
              TColor(ListClrChart.Items.Objects[I]));
        end;
      end;
     
      Chart.Refresh;
    end;
    { Form Create }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    with Chart do
      begin
        color := clWindow;
        Title.Clear;
        Hover.Visible := False;
     
        for I := 0 to MaxSeries do // 4 Series
        begin
          with AddSeries(TBarSeries.Create(Self)) do
          begin
            Marks.Visible := False;
            SeriesColor := clWhite;
          end;
        end;
    { Form Show }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Initialize_Chart;
      Initialize_ListClrChart;
      Initialize_ListNameSeries;

    Merci
    Vous ne pouvez pas faire confiance à un code que vous n'avez pas totalement rédigé vous-même.

  2. #2
    Membre habitué Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 260
    Points : 171
    Points
    171
    Par défaut
    Ah Ok ! Il faut rajouter Chart.Series[I].SeriesColor, je pensais que cela se faisait automatiquement lors de l'ajout des données en précisant la couleur Chart.Series[I].Add(StrToInt(Data.Cells[ICol, IRow]), Data.Cells[I, IRow],TColor(ListClrChart.Items.Objects[I]));.

    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
    procedure TFChart.BuildChart;
    var
      I, IRow, ICol: Integer;
    begin
      for I := 0 to Chart.SeriesCount - 1 do
        Chart.Series[I].Clear;
     
      for I := 0 to Chart.SeriesCount - 1 do
      begin
        if not Chart.Series[I].Visible then
          continue;
     
        Chart.Series[I].Title := ListNameSeries.Cells[1, I];
     
        if Chart.Series[I].Title = EmptyStr then
          Chart.Series[I].Title := 'Série ' + InttoStr(I + 1);
     
        for IRow := Data.FixedRows to Data.RowCount - 1 do
        begin
          ICol := I + 1;
     
          if Data.Cells[ICol, IRow] <> EmptyStr then
            Chart.Series[I].Add(StrToInt(Data.Cells[ICol, IRow]), Data.Cells[I, IRow],
              TColor(ListClrChart.Items.Objects[I]));
            Chart.Series[I].SeriesColor := TColor(ListClrChart.Items.Objects[I]);
        end;
      end;
     
      Chart.Refresh;
    end;
    Vous ne pouvez pas faire confiance à un code que vous n'avez pas totalement rédigé vous-même.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/07/2015, 00h10
  2. TeeChart - plusieurs couleurs dans la même barre
    Par DarkLago dans le forum Delphi
    Réponses: 9
    Dernier message: 18/04/2007, 15h30
  3. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

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