2017-01-12 2 views
0

TChart、TPointSeries、水平スクロールでDelphi 10を使用していますが、現在、PostgreSQLデータベースから読み込まれたデータが多すぎます(それぞれ100個の曲線があり、それぞれに数千点が含まれています)。現在のデータのみをTChartにロード

  • TChartの現在のスクロール "ウィンドウ"に表示する必要があるデータのみをデータベース(LIMITとOFFSET)からロードできますか?
  • データがない領域にスクロールすると「データが必要です」というイベントが発生しますか?
  • このポイントをすべてロードせずにどれくらいのポイントをTChartに知らせることはできますか?
  • 凡例の対応するチェックボックスをオンにした場合にのみ、実際のデータをチャートにロードして、すべての曲線の説明を凡例に含めることはできますか?私はそのチャートがデータベース内のすべてのシリーズを表示しているが、それは凡例にすべての利用可能なシリーズを表示したいとは思わない。凡例で特定の系列をクリックすると、対応する系列データがロードされ、曲線として表されます。

答えて

1
  • それはTChartの現在のスクロール「ウィンドウ」に表示する必要のあるデータだけをデータベースから(LIMITとOFFSETと)をロードすることは可能ですか?

は、手動でデータをループしAdd()/AddXY()関数を呼び出し、これを行うことができます。
次に、OnScrollイベントで、軸の範囲から外れている点を削除し、軸の範囲の/内にそれらの点を追加することができます。

  • があり、いくつかの「必要なデータ」の火災は、私はデータなしで領域にスクロールした場合?

いいえ。OnScrollイベントを使用し、それを自分でチェックする必要があります。何ができるかの例を下に提供され

更新:

constructor TForm1.Create(AOwner: TComponent); 
begin 
    inherited; 
    chart.OnScroll := chartScroll; 
    chart.OnZoom := chartZoom; 
end; 

procedure TForm1.displayRange(); 
var startDate, endDate: TDateTime; 
begin 
    startDate := TDateTime(chart.BottomAxis.Minimum); 
    endDate := TDateTime(chart.BottomAxis.Maximum); 
    Log(Format('start=%d, end=%d', [ 
    FindClosestIndex(startDate, chart.Series[0].XValues), 
    FindClosestIndex(endDate, chart.Series[0].XValues) 
    ])); 
end; 

procedure TForm1.chartScroll(Sender: TObject); 
begin 
    displayRange(); 
end; 

procedure TForm1.chartZoom(Sender: TObject); 
begin 
    displayRange(); 
end; 

FindClosestIndexの例はhereを取ることができます。更新

  • エンドはこのすべてのポイントをロードせずに、私が持っているどのくらいのポイントTChartを通知することが可能ですか?

いいえ、ただし、変数を変更することはできます。

  • それは私は伝説で対応するチェックボックスをチェックした場合にのみグラフ化し、実際のデータをロードすると伝説にすべてのカーブの記述を持つことは可能ですか?私はそのチャートがデータベース内のすべてのシリーズを表示しているが、それは凡例にすべての利用可能なシリーズを表示したいとは思わない。凡例で特定の系列をクリックすると、対応する系列データがロードされ、曲線として表されます。

あなたはOnCLickLegendイベントとループあなたのシリーズを使用することができます。今すぐこのシリーズのActiveプロパティは最新ですので、not Activeであり、Add/AddXYActiveであることを示しています。

+0

イエレル、私の最後の質問にお答えします。私はそのチャートがデータベース内のすべてのシリーズを表示しているが、それは凡例にすべての利用可能なシリーズを表示したいとは思わない。凡例で特定の系列をクリックすると、対応する系列データがロードされ、曲線として表されます。 – Paul

関連する問題