當chart座標X軸為時間型如何指定其Maxinum,Minimum,Increment |
尚未結案
|
zxy666666
中階會員 發表:108 回覆:150 積分:86 註冊:2005-01-14 發送簡訊給我 |
大家好! 請問如何動態指定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 發送簡訊給我 |
希望以下的程式碼可以解決你的問題,
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 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
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 發送簡訊給我 |
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; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |