Points à afficher dans un TChart

PhilLu Messages postés 251 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 11 mai 2021 - 7 déc. 2012 à 17:12
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 12 déc. 2012 à 13:04
Bonjour,
Quand je tente d'afficher les points d'une grille dans un TChart le dernier point ne s'affiche jamais!?!
Ici quand je rempli la grille de 4 paires de points, seulement les 3 premiers s'affichent!!!
(les données sont en colonne 1 et 3 à partir de la 2eme ligne - en fait à l'index 1 ;-)
Merci pour votre aide!
PhilLu

Series19.Clear;
for I := 1 to 30 do
begin
if (Comparaisongrid.Cells[1,i]<>'')AND(Comparaisongrid.Cells[3,i]<>'') then
Series19.AddXY(StrtoFloat(Comparaisongrid.Cells[1,i]),StrtoFloat(Comparaisongrid.Cells[3,i]));
series19.Active:=True;
end;

9 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
7 déc. 2012 à 18:04
Bonsoir,

les listes vont de 0 à n-1

cantador
0
PhilLu Messages postés 251 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 11 mai 2021
7 déc. 2012 à 22:52
Ben non, quand j'ajoute des points dans la grille, ce n'est pas le dernier point qui n'est pas affiché, mais la valeur la plus élevée!
Pourtant l'échelle est corectement dimensionnée!?!
Qq chose m'echappe...
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
8 déc. 2012 à 12:45
Series19.Clear; 
for I := 0 to (30 - 1) do 
begin 
if (Comparaisongrid.Cells[1,i]<>'')AND(Comparaisongrid.Cells[3,i]<>'') then 
Series19.AddXY(StrtoFloat(Comparaisongrid.Cells[1,i]),StrtoFloat(Comparaisongrid.Cells[3,i]));
 series19.Active:=True; 
end;



vérifie les propriétés min et max
ou adapte les..

cantador
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
9 déc. 2012 à 16:14
pourquoi ne pas utiliser un stringrid ?

cantador
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PhilLu Messages postés 251 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 11 mai 2021
10 déc. 2012 à 17:47
C'est un Stringrid! Je l'ai nommé 'Comparaisongrid'
J'ai testé plusieurs config de min et max mais pas mieux!
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
11 déc. 2012 à 19:48
tu as

(Comparaisongrid.Cells[1,i]<>'')AND(Comparaisongrid.Cells[3,i]<>'')

il faut que les deux conditions soient vraies en même temps pour le Teechart prenne les valeurs
que je ne connais pas...

cantador
0
PhilLu Messages postés 251 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 11 mai 2021
11 déc. 2012 à 23:08
Je compare deux méthodes dont les résultats sont contenus dans les colonnes 2 et 4 (index 1 et 3) d'un Stringrid nommé Comparaisongrid.
J'introduis moi-même ces valeurs, donc elle existent bien mais comme le stringrid n'est pas rempli complètement, j'arrête de créer des points pour la suite de la grille stringrid vide.
C'est le dernier point existant réellement dans la table qui n'est pas affiché!?! par exemple ligne 15; pas forcément la dernière ligne du stringrid.
J'ai testé pas mal de choses sans succès
Encore merci pour ton aide!!!
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
12 déc. 2012 à 12:03
bon, je fais l'exercice de mon côté..
@+

cantador
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
12 déc. 2012 à 13:04
voilà :

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, ExtCtrls, TeeProcs, TeEngine, Chart, Series, StdCtrls;

type
  TForm1 = class(TForm)
    Chart1: TChart;
    Comparaisongrid: TStringGrid;
    Series1: TPointSeries;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);

  private
    procedure DisplayTeechart;
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;
  TCoord: array of array of integer;

const

// hypothèses de départ
  startcol = 1;
  endcol = 4;
  totalrow = 18;
  nbcoord = 2;
  CoordMax = 30;

implementation

{$R *.dfm}

procedure TForm1.DisplayTeechart;
var
  i: integer;
begin
  with series1 do
  begin
    Clear;
    for i := 0 to Comparaisongrid.RowCount - 1 do
      if (Comparaisongrid.Cells[startcol, i] <> '') and (Comparaisongrid.Cells[(endcol - 1), i] <> '') then
        Series1.AddXY(StrtoFloat(Comparaisongrid.Cells[startcol, i]), StrtoFloat(Comparaisongrid.Cells[(endcol - 1), i]));
    series1.Active := True;
  end;
end;

procedure stocoorg;
var
  i, j: integer;
begin
  Setlength(TCoord, totalrow, nbcoord);
  for i := 0 to (totalrow - 1) do
  begin
    randomize;
    for j := 0 to (nbcoord - 1) do
      TCoord[i, j] := Random(CoordMax);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i: integer;
begin
  stocoorg;

  Comparaisongrid.ColCount := endcol;
  Comparaisongrid.RowCount := totalrow;
  for i := 0 to totalrow - 1 do
  begin
    Comparaisongrid.Cells[startcol, i] := IntToStr(TCoord[i, 0]);
    Comparaisongrid.Cells[(endcol - 1), i] := IntToStr(TCoord[i, 1]);
  end;

  DisplayTeechart;
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
  FormCreate(Sender);
end;

end.



tu peux constater en cliquant sur le bouton que les coordonnées aléatoires des 18 points s'affichent tous dans le TeeChart..


cantador
0
Rejoignez-nous