全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1612
推到 Plurk!
推到 Facebook!

TChart橫軸顯示時間的問題

答題得分者是:P.D.
thanks
一般會員


發表:4
回覆:8
積分:2
註冊:2012-12-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2012-12-10 21:04:00 IP:116.248.xxx.xxx 訂閱

[code cpp]
Series1->XValues->DateTime = true;
[/code]
未運行時窗體橫軸顯示是 07:00 08:00 ...... 12:00
程序運行后變成 00:00 00:00 ...... 00:00
時分格式全變成00了,很少用過這個組件,請問是什麽回事呢?
thanks
一般會員


發表:4
回覆:8
積分:2
註冊:2012-12-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2012-12-11 10:10:47 IP:61.166.xxx.xxx 訂閱
怎麼沒人回覆的呢,是不是我問得太濫了@@@
P.D.
版主


發表:571
回覆:3881
積分:3666
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2012-12-12 22:15:35 IP:59.120.xxx.xxx 未訂閱
我回覆了, 真的很爛, 因為看不懂, 不妨送個圖上來看比較直接, 還有你丟到 CHART的程式段是如何處理的
你回貼程式碼好像有問題, 不妨不要使用 "程式碼區塊" 的方法, 直接丟 SORUCE CODE 上來就好

===================引 用 thanks 文 章===================
怎麼沒人回覆的呢,是不是我問得太濫了@@@
編輯記錄
P.D. 重新編輯於 2012-12-12 07:18:05, 註解 無‧
thanks
一般會員


發表:4
回覆:8
積分:2
註冊:2012-12-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2012-12-13 09:20:30 IP:61.166.xxx.xxx 訂閱
http://delphi.ktop.com.tw/download/upload/50c92c3a08f48_my_pic.png

[code cpp]
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Chart->BottomAxis->Minimum = 0;
//Chart->BottomAxis->Maximum = 8/24;
//Chart->BottomAxis->Increment = dtOneHour;
AreaSeries1->XValues->DateTime = true;
Chart->RightAxis->Minimum = 0;
Chart->RightAxis->Maximum=4800;
Chart->RightAxis->Increment = 400;
Chart->BufferedDisplay=true;
Chart->RightAxis->Automatic=false;
Chart->BottomAxis->Automatic = false;
Chart->Legend->Visible = false;
AreaSeries1->DrawArea = true;
//AreaSeries1->AreaColor = clBlack;
//AreaSeries1->DrawValuesForward();
//AreaSeries1->DrawSeriesForward(100);
/*
for(int i = 0;i < 3000; i )
{
Series2->AddXY(i,i/2,"",clRed);
}
TPoint points[3];
points[0] = Point(20,250);
points[1] = Point(510,250);
points[2] = Point(500,30);
//畫刷
Chart->Canvas->Brush->Color = clRed;
Chart->Canvas->Polygon(points, 2);
//畫筆
//Chart->Canvas->Line(0,100,100,0);
Chart->Canvas->MoveTo(20,250);
Chart->Canvas->LineTo(510,250);
Chart->Canvas->MoveTo(510,250);
Chart->Canvas->LineTo(500,30);
*/
//double dd = Chart->BottomAxis->Minimum *24;
//double aa = Chart->BottomAxis->Maximum *24;
int SEC = (Chart->BottomAxis->Maximum - Chart->BottomAxis->Minimum)*24*3600 1;
int MIN = SEC/60;
int chl = MIN *10 * 3;
//Series2->LinePen->Color = clBlack;
//Series2->AddXY(1,400,"",clRed);
Series2->Add(0);
Series2->Add(chl);
//Series2->Add(400);
}
//---------------------------------------------------------------------------
int n = 0;
Integer Number=0; //
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
AreaSeries1->ColorRange(AreaSeries1->XValues,10,21,clRed);
if(50 {
AreaSeries1->SeriesColor = clRed;
AreaSeries1->AddY(0);
AreaSeries1->AddY(50);
//Series2->AddY(n);
Number = 5;
}
else
{
AreaSeries1->SeriesColor = clLime;
AreaSeries1->AddY(0);
//AreaSeries1->AddY(Number);
AreaSeries1->Add(Number);
//Series2->AddX(n);
Number = 50;
}
n ;
}
//---------------------------------------------------------------------------
[/code]

===================引 用 P.D. 文 章===================
我回覆了, 真的很爛, 因為看不懂, 不妨送個圖上來看比較直接, 還有你丟到 CHART的程式段是如何處理的
你回貼程式碼好像有問題, 不妨不要使用 "程式碼區塊" 的方法, 直接丟 SORUCE CODE 上來就好

謝謝P.D.先進,抱歉哦,我說得不夠清楚,我大概是想知道TChart橫軸怎麼顯示時間,根式為時分,昨晚我解決了的,可以繼續問你個問題嗎,我的TChart上有兩個AreaSeries,AreaSeries1是FormCreate時刷的一塊區域,AreaSeries2是在Timer事件里在AreaSeries1作為背景下一秒秒地刷的,請問可以實現嗎?
thanks
一般會員


發表:4
回覆:8
積分:2
註冊:2012-12-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2012-12-13 09:32:15 IP:61.166.xxx.xxx 訂閱
如圖,X軸的分鐘數是 8*60 = 480 分鐘,灰色區域的Y座標對應的是4800,我將X軸時間改變后 7*60 后,對應的應該是 4200,可是實際不是那樣。如果Y軸上的值要和X上的值對應,怎麼寫呢。第一次用TChart畫圖,求各位先進指點。
thanks
一般會員


發表:4
回覆:8
積分:2
註冊:2012-12-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2012-12-13 09:50:28 IP:61.166.xxx.xxx 訂閱
http://delphi.ktop.com.tw/download/upload/50c9336a9441f_20121213093614.png

其實我想實現上圖的那種效果
thanks
一般會員


發表:4
回覆:8
積分:2
註冊:2012-12-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2012-12-13 21:45:33 IP:61.166.xxx.xxx 訂閱
==================引 用 P.D. 文 章===================
我回覆了, 真的很爛, 因為看不懂, 不妨送個圖上來看比較直接, 還有你丟到 CHART的程式段是如何處理的
你回貼程式碼好像有問題, 不妨不要使用 "程式碼區塊" 的方法, 直接丟 SORUCE CODE 上來就好

謝謝P.D.先進,抱歉哦,我說得不夠清楚,我大概是想知道TChart橫軸怎麼顯示時間,根式為時分,昨晚我解決了的,可以繼續問你個問題嗎,我的TChart上有兩個AreaSeries,AreaSeries1是FormCreate時刷的一塊區域,AreaSeries2是在Timer事件里在AreaSeries1作為背景下一秒秒地刷的,請問可以實現嗎?

四樓我體的問題解決了,AreaSeries2可以在AreaSeries1灰色的區域內刷圖了,現在又有個新問題,當我想刷紅色的時候,前面已經刷好的綠色區域也變成紅色了,有辦法像六樓那個圖那樣子顏色分開刷嗎?謝謝
thanks
一般會員


發表:4
回覆:8
積分:2
註冊:2012-12-10

發送簡訊給我
#8 引用回覆 回覆 發表時間:2012-12-15 16:51:06 IP:61.166.xxx.xxx 訂閱
P.D.先進在嗎?我現在的程序在FormCreate時,X軸上的數值和Y軸上的數值可以對應了,比如6小時可以對應3600了。。。但是不知道爲什麽在切換到下一個時間段執行 Series2->RefreshSeries(); 刷新時,X、Y軸上的數值又不對應了,也就是那個灰色的區域沒有刷正確。還有就是刷紅色和綠色時,比如先刷綠色的區域再刷紅色的區域可以的,再刷綠色時前面那紅色區域也變綠色了,請問是怎麼回事呢?先謝謝啦
thanks
一般會員


發表:4
回覆:8
積分:2
註冊:2012-12-10

發送簡訊給我
#9 引用回覆 回覆 發表時間:2012-12-15 17:15:44 IP:61.166.xxx.xxx 訂閱
更換時間段重繪灰色區域對應的X Y軸沒問題了,現在只剩下刷紅色和綠色區域的問題了,加油!
一開始發帖的時候忘記選討論區了,我的問題應該在 VCL 元件使用或設計討論區(C Builder) 發表的
希望各位會 C Builder VCL元件的先進能給點指導意見哈,謝謝
系統時間:2017-10-24 13:49:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!