1

私の以前の質問にはいくつかの素晴らしい情報がありましたが、問題が 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; wheretimeLabel です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";

4

3 に答える 3

1

ところで:値を追加する前にChart1.AutoRepaintをfalseに設定し、後でtrueに戻す場合は、描画を高速化することもできます

于 2011-01-25T10:54:22.487 に答える
1

これは、TeeChart の開発者の助けになるかもしれません.... TeeChart を使用 した高速線描画

于 2011-01-26T17:47:35.543 に答える
1

チャートに入れる値を生成する方法がボトルネックになっているのではないでしょうか?

Delphi 2010 で、次のコードを測定すると 1/10 秒未満でした。

var
  I: Integer;
begin
  for I := 0 to 3000 - 1 do
    Series1.AddXY(Random(1000), Random(100));
于 2011-01-25T00:59:07.700 に答える