線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2906
推到 Plurk!
推到 Facebook!

當chart座標X軸為時間型如何指定其Maxinum,Minimum,Increment

尚未結案
zxy666666
中階會員


發表:108
回覆:150
積分:86
註冊:2005-01-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-16 10:44:18 IP:219.132.xxx.xxx 未訂閱
大家好!    請問如何動態指定X軸的Maxinum,Minimum,Increment值?(時間型,格式:00:00:00) 謝謝!    
   Chart1.BottomAxis.Automatic := False;    
   Chart1.BottomAxis.Maximum := ?;
   Chart1.BottomAxis.Minimum := ?;
   Chart1.BottomAxis.Increment := ?;
比如說: 設定為最小值1分鐘,最大值8分鐘結束,遞增2分鐘,請前輩指教.非常謝謝!
chenyk
高階會員


發表:14
回覆:95
積分:171
註冊:2002-07-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-20 16:35:04 IP:61.141.xxx.xxx 未訂閱
希望以下的程式碼可以解決你的問題, TChat 元件的軸標籤好像是不能直接定義成時間格式字串。    
 
var
   Std_Tm,MaxTm,MinTm,NowTm : TDateTime;
   IncNum,inx : Integer;
begin
   Std_Tm := EncodeTime(0,0,0,0);
   MinTm := Std_Tm +(StrToIntDef(Edit1.Text,1)/1440);
   IncNum := StrToIntDef(Edit3.Text,1);;
   MaxTm := Std_Tm +(StrToIntDef(Edit2.Text,1) /1440);       series1.Clear;
   inx   := 0;
   NowTm := MinTm;
   while NowTm <= MaxTm do
   begin
      series1.AddY(inx,FormatDateTime('hh:nn:ss',NowTm));          inx := inx +IncNum;
      NowTm := NowTm +(inx /1440);
   end;  //while    
zxy666666
中階會員


發表:108
回覆:150
積分:86
註冊:2005-01-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-20 20:37:01 IP:59.36.xxx.xxx 未訂閱
hi,chenyk您好!謝謝你的回覆!    可否再請問一個問題: 怎樣一開始就將Maxinum,Minimum,Increment設定好呢?  也就是說在沒有資料前可以看到最大,最小值及遞增的畫面. 然後按需要添加資料:series1.AddY(inx,FormatDateTime('hh:nn:ss',NowTm));    如下圖:(分:秒) Minimum=0秒,Maxinum=3秒,Increment=6秒.     謝謝!!!
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-22 10:32:32 IP:210.65.xxx.xxx 未訂閱
Hi zxy666666,    試試這樣行不行?
procedure TForm1.Button1Click(Sender: TObject);
begin
  Chart1.Series[0].XValues.DateTime := True;
  Chart1.BottomAxis.DateTimeFormat := 'nn:ss';
  Chart1.BottomAxis.Automatic := False;;
  Chart1.BottomAxis.Increment := 6/86400;
  try
    Chart1.BottomAxis.Maximum := 30/86400;
    Chart1.BottomAxis.Minimum := 0;
  except
    Chart1.BottomAxis.Minimum := 0;
    Chart1.BottomAxis.Maximum := 30/86400;
  end;
end;
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
zxy666666
中階會員


發表:108
回覆:150
積分:86
註冊:2005-01-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-22 16:43:21 IP:218.16.xxx.xxx 未訂閱
Fishman大大您好! 感謝你的解答,動態設置Maxinum,Minimum,Increment是沒問題了.可是又來一個問題: 我想在添加資料的時候,畫面保持不變,直接畫線就好, 可是我按下面的代碼去寫,Chart的畫面自動又變了, 請問怎麼將X軸的資料加進去呢?如下圖,紅框線裡面的內容可否改成如左欄的Text裡面的值一樣呢(如:00:00:04),謝謝!    
var
  Form1: TForm1;
  sTime,sRunTime:TTime;
  iRev : Integer ;    implementation    {$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
   sTime := Time ;  //測試時間
   sRunTime := Time-sTime ;  //測試運行時間
  Chart1.Series[0].XValues.DateTime := True;
  Chart1.BottomAxis.DateTimeFormat := 'nn:ss';
  Chart1.BottomAxis.Automatic := False;;
  Chart1.BottomAxis.Increment := 6/86400;
  try  // 不知道這裡用try...except有何用意??呵呵,我一般就寫try裡面的:先指定Maximum,再指定Minimum
    Chart1.BottomAxis.Maximum := 30/86400;
    Chart1.BottomAxis.Minimum := 0;
  except
    Chart1.BottomAxis.Minimum := 0;
    Chart1.BottomAxis.Maximum := 30/86400;
  end;
  Timer1.Enabled := True ;
end;    procedure TForm1.Timer1Timer(Sender: TObject);
begin
    sRunTime := Time-sTime ;  //測試運行時間
    iRev := iRev + 1 ;
    Chart1.Series[0].AddY(iRev,FormatDateTime('nn:ss',sRunTime));
end;
系統時間:2024-05-19 17:11:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!