2016-04-25 61 views
1

を使用して、古いものをクリアすることで、動的にタスクの進行状況を表示保つために、進捗状況が動的に表示され、このような何か:どのように私は、タスクの進行状況を表示するtchartコンポーネントを使用していTChartコンポーネント

enter image description here

私は下軸の最大値を50に設定しています。この値を超えるとグラフは表示されません。

while Progress do 
begin 
    if series1.bottomaxis.value = maxvalue then 
    Series1.clear; 
end; 
series1.add(x,y); 

まあ、これは私が何をしたいのかを説明することだけだった:どのように私は古いものをクリアすることで、動的にタスクの進行状況を示す維持し、新たな進展を示す開始することができ、私はそれはのようなものであるべきだと思います。 最大値を変更せずに進捗状況を表示し続けるにはどうすればよいですか?

答えて

0

新しいデータをシリーズに追加する最も簡単な方法は、AddXYメソッドを使用して、シリーズにポイントを追加することです。この方法の大きな利点は、使用するのが非常に簡単だということです。これは、リアルタイムでプロットし、表示されるポイントの数が数千を超えない場合、ポイントを追加するための好ましい方法です。 TChartSeries.Deleteメソッドと一緒に、リアルタイムプロットを行う強力な方法を提供します。次の2つのルーチンは、TeeChartの例の1つで、グラフのリアルタイムスクロールを実行するために使用されます。最初のルーチンは、2番目の新しいデータとして日常スクロールポイントが追加され、シリーズに新しいポイントを追加し、古いに、不要なポイントを削除:をグラフ作成リアルタイムの詳細については

// Adds a new random point to Series 
    Procedure RealTimeAdd(Series:TChartSeries); 
    var XValue,YValue : Double; 
    begin 
    if Series.Count=0 then // First random point 
    begin 
     YValue:=Random(10000); 
     XValue:=1; 
    end 
    else 
    begin 
     // Next random point 
     YValue:=Series.YValues.Last+Random(10)-4.5; 
     XValue:=Series.XValues.Last+1; 
    end; 
    // Add new point 
    Series.AddXY(XValue,YValue); 
    end; 

    // When the chart is filled with points, this procedure 
    // deletes and scrolls points to the left. 
    Procedure DoScrollPoints(Series: TChartSeries); 
    var tmp,tmpMin,tmpMax : Double; 
    begin 
    // Delete multiple points with a single call. 
    // Much faster than deleting points using a loop. 

    Series.Delete(0,ScrollPoints); 

    // Scroll horizontal bottom axis 
    tmp := Series.XValues.Last; 
    Series.GetHorizAxis..SetMinMax(tmp-MaxPoints+ScrollPoints,tmp+ScrollPoints); 

    // Scroll vertical left axis 
    tmpMin := Series.YValues.MinValue; 
    tmpMax = Series.YValues.MaxValue; 

    Series.GetVertAxis.SetMinMax(tmpMin-tmpMin/5,tmpMax+tmpMax/5); 

    // Do chart repaint after deleting and scrolling 
    Application.ProcessMessages; 
    end; 

を、記事を読んでくださいhere

+0

オフサイトの場所へのリンクだけで構成される回答は受け入れられません。そのオフサイトの場所が利用できない場合、それに応じた回答はすべての価値を失います。そのオフサイトコンテンツの関連部分は、ここでは回答そのもので、リンクは追加の参照として使用する必要があります。それが不可能な場合は、答えではないので、これは質問のコメントにする必要があります。 –

+0

@KenWhite ok、私はここで質問に応じて記事の最も関連性の高い部分をコピーしました。 –

関連する問題