2017-02-07 31 views
-1

現在、私はそれに複数のライン系列を持つDBChartを取得しています。各レコードの日時をx軸に置きます。DelphiとTeechart - X軸のランタイムの日時を変更します

今、私はランタイムの日時を変更する必要があります。したがって、基本的に、最初に記録された日時は0.0hrsになります。

ここで私が何を意味するかのいくつかの例:

  1. 2017年1月5日午前八時00分00秒=ポイントがX
  2. 2017年1月5日8時30分00秒の軸上0.0hrsを示すべき=ポイントは軸に0.5時間表示する必要があります。X
  3. 2017-01-05 09:00:00 =ポイントは軸に1.0時間表示されます。X
  4. 2017-01-05 09:30:00 =ポイントは1.5時間表示されます。軸上X
  5. 2017-01-05 10:00:00 =ポイントは軸に2.0時間表示する必要がありますX
  6. 2017年1月5日10時30分00秒=ポイントは、基本的には、チャートが起こるかを示す

............軸X

  • ETCに2.5時間を示すべき私がデータベースに自分の値を記録し始めてから停止するまでの間。録音の開始から時間がどのようにしなければならないかを知ることが重要です。

    DBChartには、それを行うのに役立つ関数や他の方法がありますか?あなたは違いを計算し、それを表示するためにOnGetAxisLabelイベントを使用することができ、あなたの助け

  • 答えて

    0

    ため

    感謝。すなわち:

    var startDate: TDateTime; 
    
    procedure TForm1.FormCreate(Sender: TObject); 
    var i: Integer; 
    begin 
        Series1.FillSampleValues(10); 
    
        startDate:=StrToDateTime('08/02/2017 10:00:00'); 
    
        Series1.XValue[0]:=startDate; 
        for i:=1 to Series1.Count-1 do 
        Series1.XValue[i]:=Series1.XValue[i-1]+Round(random*10)*DateTimeStep[dtTenMinutes]; 
    end; 
    
    procedure TForm1.Chart1GetAxisLabel(Sender: TChartAxis; Series: TChartSeries; 
        ValueIndex: Integer; var LabelText: string); 
    var tmpDate: TDateTime; 
    begin 
        if (Sender = Chart1.Axes.Bottom) then 
        begin 
        tmpDate:=StrToDateTime(LabelText); 
        tmpDate:=tmpDate-startDate; 
        LabelText:=FormatDateTime('hh:mm:ss', tmpDate); 
        end; 
    end; 
    
    +0

    私が探していたものでした。私はちょっと修正しなければならなかったので、チャートは複数の日に記録できるので、formatdatetimeは私にとってはうまくいきませんでした。今、0.0hrsの最初のレコードを表示することは可能ですか?今、下のチャートは私が0時間、1時間、2時間などを表示することを好むだろう-0.5,0.5,1.5,2.5など私に表示されますので、基本的には、下の軸をマークするためにどのレコードを使用すべきかをチャートに伝えることが可能です。今、自動的にそれをやっています。 – Carl

    関連する問題