TChart création nouvelle série

Signaler
Messages postés
249
Date d'inscription
lundi 9 novembre 2009
Statut
Membre
Dernière intervention
2 mars 2020
-
Cirec
Messages postés
3809
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
25 janvier 2020
-
Bonjour,
Je souhaite créer un nombre de séries au runtime en fonction des besoins.
Au démarrage j'ai une série et j'ajoute le nombre de série nécessaire à l'aide de cette méthode:
Chart_congels.AddSeries(TPointSeries.Create(self));

malheureusement la série génère le même type de courbe mais les points ont alors la taille par défaut et pas la même taille que la première série :-/

J'ai lors essayé de générer la nouvelle série en clonant la première:
Chart_frigos.AddSeries(CloneChartSeries(Chart_frigos.Series[0]));

cette fois la taille des points est ok mais la couleur est identique à la première série ainsi que son nom :-(
Je n'arrive pas ensuite à assigner une couleur aléatoire (mais différentes de celles déjà utilisées) ni à nommer cette série dynamiquement...


Qui peut m'aider sur ce coup???

Merci pour vos suggestions ;-)
PhilLu

2 réponses

Messages postés
183
Date d'inscription
samedi 15 novembre 2003
Statut
Membre
Dernière intervention
15 mars 2020
4
salut
est ce que tu cherche quelque chose comme ça
procedure TForm2.Button1Click(Sender: TObject);
var
  LineSeries: TLineSeries;
begin
  Chart1.Parent := Self;
  LineSeries    := TLineSeries.Create(Chart1);
  Chart1.AddSeries(LineSeries);

//  LineSeries.Color := clRed;
  LineSeries.SeriesColor := clBlue;

  LineSeries.Add(5,'Titi',clred);
  LineSeries.Add(10,'Toto',clBlue);

 // LineSeries.FillSampleValues(20);

end;


papyvore
Messages postés
3809
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
25 janvier 2020
35
Salut,

avec ce bout de code je clone les séries de Chart1 vers Chart2
et au passage je change la couleur et le titre ...
procedure TChartDemoMainForm.Button2Click(Sender: TObject);
var
  aLS: TChartSeries;
  I: Integer;
begin
  aLS := TChartSeries.Create(Chart2);
  Chart2.SeriesList.Clear;
  for I := 0 to Chart1.SeriesCount-1 do
    begin
      aLS := CloneChartSeries(Chart1.Series[I]);
      aLS.SeriesColor := RandomRange(255, $ffffff);
      aLS.Title := IntToStr(I+1) + ' Toto';
      Chart2.AddSeries(aLS);
    end;
end;
tout comme papyvore je ne sais pas si j'ai bien compris ta demande
mais peut être que ça t'aidera ;)