StringGrid の 6 と8 列目の行の値をChartで
グラフ化し(リボン) 常に横軸20の最新だけを表示
(注-->実際 21見えてしまいますので修正が必要)
実行時 動的に横軸が21を超えたら
(cunはカウント数=行数です)
if cun>=21 then
Pscroll(cun,StringGrid1,Chart1);
でグラフ表示範囲を修正出来ます
プロシージャ Pscroll を作っておきます
(scun は cun のTEMPとして活用)
関数 MinIntValue()とMaxIntValue() の為に
uses に Math を追加
procedure TForm1.Pscroll(var scun: Integer; StringGrid1: TStringGrid;
Chart1:TChart);
var
Array1: array of Integer;
vpmax,vpmin : Integer;
begin
//チャートのポイントの値の 配列を作成する
SetLength (Array1, 42);
Array1[0] := StrToInt(StringGrid1.Cells[6,scun]);
Array1[1] := StrToInt(StringGrid1.Cells[6,scun-1]);
Array1[2] := StrToInt(StringGrid1.Cells[6,scun-2]);
Array1[3] := StrToInt(StringGrid1.Cells[6,scun-3]);
Array1[4] := StrToInt(StringGrid1.Cells[6,scun-4]);
Array1[5] := StrToInt(StringGrid1.Cells[6,scun-5]);
Array1[6] := StrToInt(StringGrid1.Cells[6,scun-6]);
Array1[7] := StrToInt(StringGrid1.Cells[6,scun-7]);
Array1[8] := StrToInt(StringGrid1.Cells[6,scun-8]);
Array1[9] := StrToInt(StringGrid1.Cells[6,scun-9]);
Array1[10] := StrToInt(StringGrid1.Cells[6,scun-10]);
Array1[11] := StrToInt(StringGrid1.Cells[6,scun-11]);
Array1[12] := StrToInt(StringGrid1.Cells[6,scun-12]);
Array1[13] := StrToInt(StringGrid1.Cells[6,scun-13]);
Array1[14] := StrToInt(StringGrid1.Cells[6,scun-14]);
Array1[15] := StrToInt(StringGrid1.Cells[6,scun-15]);
Array1[16] := StrToInt(StringGrid1.Cells[6,scun-16]);
Array1[17] := StrToInt(StringGrid1.Cells[6,scun-17]);
Array1[18] := StrToInt(StringGrid1.Cells[6,scun-18]);
Array1[19] := StrToInt(StringGrid1.Cells[6,scun-19]);
Array1[20] := StrToInt(StringGrid1.Cells[6,scun-20]);
Array1[21] := StrToInt(StringGrid1.Cells[8,scun]);
Array1[22] := StrToInt(StringGrid1.Cells[8,scun-1]);
Array1[23] := StrToInt(StringGrid1.Cells[8,scun-2]);
Array1[24] := StrToInt(StringGrid1.Cells[8,scun-3]);
Array1[25] := StrToInt(StringGrid1.Cells[8,scun-4]);
Array1[26] := StrToInt(StringGrid1.Cells[8,scun-5]);
Array1[27] := StrToInt(StringGrid1.Cells[8,scun-6]);
Array1[28] := StrToInt(StringGrid1.Cells[8,scun-7]);
Array1[29] := StrToInt(StringGrid1.Cells[8,scun-8]);
Array1[30] := StrToInt(StringGrid1.Cells[8,scun-9]);
Array1[31] := StrToInt(StringGrid1.Cells[8,scun-10]);
Array1[32] := StrToInt(StringGrid1.Cells[8,scun-11]);
Array1[33] := StrToInt(StringGrid1.Cells[8,scun-12]);
Array1[34] := StrToInt(StringGrid1.Cells[8,scun-13]);
Array1[35] := StrToInt(StringGrid1.Cells[8,scun-14]);
Array1[36] := StrToInt(StringGrid1.Cells[8,scun-15]);
Array1[37] := StrToInt(StringGrid1.Cells[8,scun-16]);
Array1[38] := StrToInt(StringGrid1.Cells[8,scun-17]);
Array1[39] := StrToInt(StringGrid1.Cells[8,scun-18]);
Array1[40] := StrToInt(StringGrid1.Cells[8,scun-19]);
Array1[41] := StrToInt(StringGrid1.Cells[8,scun-20]);
//グラフ縦軸
vpmax := MaxIntValue(array1);//最大値
vpmin := MinIntValue(array1);//最小値
Chart1.Series[0].GetVertAxis.Automatic := False;
Chart1.Series[1].GetVertAxis.Automatic := False;
Chart1.Series[0].GetVertAxis.Maximum := vpmax;
Chart1.Series[1].GetVertAxis.Minimum := vpmin;
//グラフ横軸
Chart1.Series[0].GetHorizAxis.Automatic := False;
Chart1.Series[1].GetHorizAxis.Automatic := False;
Chart1.Series[0].GetHorizAxis.Maximum := scun;
Chart1.Series[1].GetHorizAxis.Minimum := scun-20;
end;
|