在Delphi 7中优化TCHart绘图

时间:2011-01-24 13:30:50

标签: delphi delphi-7 teechart

我的previous question有一些很好的输入,但它对我不起作用,因为我的问题似乎与Delphi 7有关。

我有一个包含单个系列(TFastLineSeries)和3,600个数据点的图表,最多需要45秒才能绘制。其他人说它应该闪电般快,所以谁可以提供帮助,请记住我使用的是Delphi 7和标准的TChart组件。

我怀疑我不是先调用AddXY()3,600次,而是先准备数据,然后立即添加。


更新:在D7中,AddXy()函数签名为function AddXY(Const AXValue, AYValue: Double; Const AXLabel: String; AColor: TColor) : Longint; where timeLabel is a string representing MM:SS. But what value should I be passing for

我用`Chart1.Series [0] .AddXY(Chart1.Series [0] .Count,codValue,timeLabel,clRed

调用它

顺便说一下,我编写了Chart1.Series [0] .XValues.DateTime:= True;    Chart1.BottomAxis.DateTimeFormat:='nn:ss'; //'hh'或'nn'或'ss'如你所愿,例如Chart1.BottomAxis.DateTimeFormat:=“dd / mm / yyyy hh:mm”;

3 个答案:

答案 0 :(得分:1)

也许您生成放入图表的值的方式是瓶颈?

在Delphi 2010上,我测量了以下代码,不到1/10秒:

var
  I: Integer;
begin
  for I := 0 to 3000 - 1 do
    Series1.AddXY(Random(1000), Random(100));

答案 1 :(得分:1)

顺便说一下:它还可以加快绘图速度,在添加值之前将Chart1.AutoRepaint设置为false,然后将if设置为true

答案 2 :(得分:1)

这可能会帮助您从TeeChart的开发者.... Fast line drawing with TeeChart