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

想請問TChart上的FastLineSeries在利用Delete刪除單點資料的問題

缺席
sunwingman
一般會員


發表:26
回覆:47
積分:14
註冊:2008-05-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2012-03-26 09:00:22 IP:140.96.xxx.xxx 訂閱
以下是實做片段:

=========================
int i=0;

void Timer()
{
Chart->FastLineSeries->AddY(Data[i], i, clRed);
i ;

if(i>200)
Chart->FastLineSeries->Delete(0); //刪第一筆資料
}
=========================

照理來說,AddY也是一直在加點,然後每次都只刪第一筆資料
Line應該還是會一直往前run,

開始實際狀況是,X座標會一直不見,最後所有的點和線都不見了...


不知道想請教各位前輩有無類似的經驗?


編輯記錄
sunwingman 重新編輯於 2012-03-25 19:01:00, 註解 無‧
sunwingman
一般會員


發表:26
回覆:47
積分:14
註冊:2008-05-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2012-03-27 10:40:00 IP:140.96.xxx.xxx 訂閱
目前發現,主要是因為Add得速度趕不上delete的速度,
不過還不知道該如何解....
sunwingman
一般會員


發表:26
回覆:47
積分:14
註冊:2008-05-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2012-04-17 22:52:41 IP:59.105.xxx.xxx 訂閱
 
以下是我個人解法,跟大家分享,可以完全如同示波器方式的顯示資料,
而且就算資料很大量,也不會變慢。

[code cpp]
int point_per_page = 200;
int Channel = 10;

if(signal_num >= point_per_page)
{
RDDlg->RawDataLine->BottomAxis->Automatic = true;

for(int i=0; i {
RDDlg->RawDataLine->Series[i]->Delete(0);
RDDlg->RawDataLine->Series[i]->AddXY(signal_num,ptr[i],signal_num,clRed);
}
}
else
{

RDDlg->RawDataLine->BottomAxis->Automatic = false;
RDDlg->RawDataLine->BottomAxis->Minimum = 0;
RDDlg->RawDataLine->BottomAxis->Maximum = point_per_page;

for(int i=0; i RDDlg->RawDataLine->Series[i]->Add(ptr[i],signal_num,clRed);


}

signal_num ;
}
[/code]
編輯記錄
sunwingman 重新編輯於 2012-04-17 08:53:08, 註解 無‧
sunwingman 重新編輯於 2012-04-17 08:54:41, 註解 無‧
sunwingman 重新編輯於 2016-06-21 18:31:32, 註解 無‧
系統時間:2017-10-19 4:10:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!