- それは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を取ることができます。更新
いいえ、ただし、変数を変更することはできます。
- それは私は伝説で対応するチェックボックスをチェックした場合にのみグラフ化し、実際のデータをロードすると伝説にすべてのカーブの記述を持つことは可能ですか?私はそのチャートがデータベース内のすべてのシリーズを表示しているが、それは凡例にすべての利用可能なシリーズを表示したいとは思わない。凡例で特定の系列をクリックすると、対応する系列データがロードされ、曲線として表されます。
あなたはOnCLickLegend
イベントとループあなたのシリーズを使用することができます。今すぐこのシリーズのActive
プロパティは最新ですので、not Active
であり、Add
/AddXY
はActive
であることを示しています。
イエレル、私の最後の質問にお答えします。私はそのチャートがデータベース内のすべてのシリーズを表示しているが、それは凡例にすべての利用可能なシリーズを表示したいとは思わない。凡例で特定の系列をクリックすると、対応する系列データがロードされ、曲線として表されます。 – Paul