delphi - 优化 Delphi 7 中的 TChart 绘图

标签 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;其中timeLabel是表示 MM:SS 的字符串。但我应该传递什么值(value)

我用 `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";

最佳答案

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

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

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

关于delphi - 优化 Delphi 7 中的 TChart 绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4782560/

相关文章:

sql-server - ms sql xml 数据类型转换为文本

sql - 使用 Delphi TChart 显示数据库中的信息

德尔福7 : How to print a TChart?

Delphi - 身份验证机制建议

delphi - TFDTable 是否支持 SortOptions.NullsFirst?

delphi - 在Delphi中将自己作为参数传递

Delphi TChart - 如何从 x,y 鼠标坐标获取系列索引而不单击它

Delphi (VCL) 泛型和数据绑定(bind)?

multithreading - 从互联网下载文件,同时能够随时中止下载

delphi - 如何在运行时分配 MDIChild 的 OnClose 事件?