只将当前数据加载到TChart
我正在使用Delphi 10与TChart,TPointSeries,水平滚动,并且目前有太多的数据(100条曲线,其中每条都包含数千个点)从PostgreSQL数据库加载。
您可以手动循环数据并调用Add()
/ AddXY()
函数。
然后,在OnScroll
事件中,您可以移除超出/远离轴范围的点,并将其添加到轴范围内/旁边。
OnScroll
。您应该使用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的一个例子可以在这里找到。
更新结束
不,但你可以维护变量。
你可以使用OnCLickLegend
事件并循环你的系列。 此时系列的Active
属性是最新的,因此您可以Clear
那些not Active
并且您可以Add
/ AddXY
点Add
到Active
。