QUOTE(VDLR @ 26/02/2008 - 13:36)

Pessoal estou precisando de ajuda para montagem de um gráfico.
O caso é o seguinte, preciso montar um gráfico onde o eixo X seja composto de data e hora e o eixo Y suba de acordo com o tempo marcado no eixo X.
Se você vai adicionar as séries em run-time, pode proceder mais ou menos assim:
- adiciona um
TChart (paleta Additional);
- dá um duplo-click nele e configura o que precisar, depois, em Séries, seleciona Serie1 e clica em Delete;
- se você precisar que o gráfico mostre os valores em Y desde 0 até o maior valor, você deve acessar a guia
Axis e na sub-guia
Scales, desmarca
Automatic; marca
Auto para Maximum e em
Minimum, clica em
Change e define 0 (zero);
- No
Object Inspector, você seleciona a propriedade
BottomAxis, expande ela e configura a propriedade LabelsAngle para 90º para que apareçam as data/horas.
Depois no código:
CODE
procedure TForm1.BtnIncluiClick(Sender :TObject);
procedure InsertSerieValue(Serie :TChartSeries; StrDateTime :String; Value :Double);
begin
Serie.AddXY(StrToDateTime(StrDateTime), Value, StrDateTime);
end;
var
LineSerie :TLineSeries;
begin
LineSerie := TLineSeries.Create(Self);
InsertSerieValue(LineSerie, '25/02/2008 23:40', 300);
InsertSerieValue(LineSerie, '26/02/2008 01:40', 400);
InsertSerieValue(LineSerie, '26/02/2008 03:40', 500);
InsertSerieValue(LineSerie, '26/02/2008 05:40', 600);
InsertSerieValue(LineSerie, '26/02/2008 07:40', 700);
Chart1.AddSeries(LineSerie);
LineSerie := TLineSeries.Create(Self);
InsertSerieValue(LineSerie, '25/02/2008 23:40', 250);
InsertSerieValue(LineSerie, '26/02/2008 01:40', 350);
InsertSerieValue(LineSerie, '26/02/2008 03:40', 450);
InsertSerieValue(LineSerie, '26/02/2008 05:40', 550);
InsertSerieValue(LineSerie, '26/02/2008 07:40', 650);
Chart1.AddSeries(LineSerie);
...
end;
Para limpar o gráfico, liberando as series alocadas, faça assim:
CODE
...
while Chart1.SeriesList.Count > 0 do
Chart1.Series[0].Free;
...
é por aí....
Abraços