• <menu id="w2i4a"></menu>
  • logo Teechart應(yīng)用技術(shù)詳解——快速圖表制作工具

    文檔首頁>>Teechart應(yīng)用技術(shù)詳解——快速圖表制作工具>>Teechart圖表應(yīng)用技術(shù)詳解—第五章之TeeChart實時監(jiān)控原理和軸管理工具

    Teechart圖表應(yīng)用技術(shù)詳解—第五章之TeeChart實時監(jiān)控原理和軸管理工具


        Steema公司和慧都科技針對中國市場聯(lián)合推出中文版TeeChart for .NET圖表控件,一共漢化2000個詞條(17000個單詞),漢化文檔35000個單詞,包括控件設(shè)計時與運行時的界面漢化以及控件使用向?qū)臋n的漢化,總漢化90%以上!

        TeeChart for .NET中文版讓您在使用和學習上沒有任何語言障礙,至少可以節(jié)省30%的開發(fā)時間。TeeChart for .NET中文版具有易上手,使用方便,穩(wěn)定性好,性價比高,價格優(yōu)惠等優(yōu)勢,并且針對Web應(yīng)用提供無限制服務(wù)器分發(fā)授權(quán)方式,非常有利于產(chǎn)品集成。

    點擊下載TeeChart for .NET最新試用版


        實時監(jiān)控是以時間為基準的連續(xù)描述信息變化的一種監(jiān)控方法,在各行各業(yè)都具有廣泛的應(yīng)用,因此,以圖表形式實時記載信息變化曲線給TeeChart賦予了重要的任務(wù)。

    TeeChart實時監(jiān)控原理

        Chart圖表是在一個固定區(qū)域中顯示指定信息,當需要實時監(jiān)控時就保持當前時刻以前個時間段的信息,隨著時間的推移,這個時間段會發(fā)生新的變化,也就說在這個顯示區(qū)域總是顯示最新時間段的信息。那么,就需要在增加一個新時間點后,將原來顯示的信息平移出顯示區(qū)域一個時間點,不斷重復(fù)這個操作,就實現(xiàn)了實時的監(jiān)控操作。

    使用TeeChart的軸管理工具

        TeeChart提供了5個有關(guān)軸管理的工具,其中Axis Scroll、Axis Arrows兩個工具與軸的滾動密切相關(guān),而由Axis Scroll實現(xiàn)軸滾動更為方便。

    Axis Scroll軸滾動工具

        在TeeChart的圖表編輯器中,單擊Tools選項卡,單擊Add按鈕,顯示Chart Tools Gallery彈出窗口,如下圖1所示。

        在下圖1的Axis選項卡中選擇 Axis Scroll工具,然后單擊Add按鈕,這時圖表編輯器的Tools選項卡變?yōu)槿鐖D2所示的界面,坐標軸滾動工具Axis Scroll已處于激活狀態(tài)( Active=true),并在Axis列表框顯示Bottom Axis關(guān)聯(lián),即該軸滾動工具與Bottom Axis關(guān)聯(lián)。也就是說可以對這個軸進行滾動操作。

    圖1.Chart Tools Gallery窗口     圖2.增加工具后的界面

    Axis Scroll工具的主要屬性

        Axis Scroll工具是一個TAxisScrollTool對象,其中包含TChartAxis對象,這是一個專門用來管理圖表坐標軸的對象,該對象的Scroll方法為滾動坐標軸提供了方便。如:

    ChartTool1.Axis.Scrol1(1.0);

        實際上,只需要使用這個方法就可以實現(xiàn)滾動。當然,如果要對坐標軸實現(xiàn)其他操作可以利用工具提供的其他屬性、方法和事件。

    代碼實現(xiàn)

        一個窗口區(qū)域顯示的數(shù)據(jù)點數(shù)是固定的,當點數(shù)超過指定值后,就應(yīng)該加入新的點而移出最舊的點,這樣就是一個窗口滾動的過程。為了模擬實時監(jiān)控狀態(tài),可以利用定時器來實現(xiàn),在定時器的 OnTimer事件中加入下列代碼

    n:=Random(100);                           //隨機數(shù)發(fā)生器
    Series1. Add(n, TimeToStr(Time));  //增加當前點,并在X軸上標注當前時間
    Series1. RefreshSeries;                    //刷新序列
    if Series1.Count >100 then             //判斷當前窗口的點數(shù)是否超過100個點
    ChartTool1.Axis.Scroll(1.0);              //當大于100點時每次規(guī)動1.0個單位

        即窗口中的點數(shù)超過100時,移動1.0個單位。

    應(yīng)用實例

    • 建立一個新工程,并按下表所示設(shè)置組件屬性,設(shè)計階段的界面如圖3所示。

    組件名屬性設(shè)置說明
    TChartNameChart1圖表組件
    TLineSeriesNameSeries1線型序列組件
    TTimerNameTimer1定時器
    Interval100/500/1000
    TComboxBoxNameComboxBox1數(shù)據(jù)頻率選擇
    Items100/500/1000
    TRadioGroupNameRadioGroup1功能選擇
    Items執(zhí)行實時監(jiān)控/記錄歷史狀態(tài)
    TCheckBox
    NameCheckBox1用作定時器開關(guān)
    CheckedFalse

        

    實時監(jiān)控舉例設(shè)計階段界面

        在ComboBox1Change事件中加入下列代碼,用于設(shè)定時間間隔,即數(shù)據(jù)采集頻率:

    procedure TForm1.ComboBox1Change (Sender:Tobject);
    begin
    case ComboBox1. ItemIndex of
    0: Timer1.Interval:=1000;
    1: Timer1.Interval:= 500;
    2: Timer1.Interval:=100;
    end;
    end;
    • 在定時器的OnTimer事件中加入下列代碼,根據(jù)分組框的功能選擇,確定定時器的工作方式以及序列數(shù)據(jù)的追加、屏幕滾動等屬性。

    procedure TForm1.Timer1Timer(Sender:TObject);
    begin
    n:=Random(100);
    Series1.Add(n, TimeToStr(Time));
    Series1.RefreshSeries;
    if RadioGroup1.ItemIndex=0 then
      begin
      if Series1.Count >100 then
         ChartTool1.Axis Scroll(1.0);
      end
      else if RadioGroup1.ItemIndex=1 then
             begin
             Chart1.BottomAxis.Automatic:=true;
             end;
    end;

        最后,在CheckBox1的OnClick事件中加入下列語句:

    Timer1.Enabled:=CheckBox1.Checked;

        該條語句用于控制定時器的打開與關(guān)閉以實現(xiàn)功能切換。該實例運行階段的界面如下圖所示。

    實時監(jiān)控運行階段界面

    相關(guān)資料推薦:

    上一章:綜合應(yīng)用實例

    下一章:使用極值控制實現(xiàn)實時監(jiān)控

    Teechart 2019資源合集

    =====================================

        現(xiàn)TeeChart for .NET,TeeChart for JavaScript/HTML5,TeeChart for Xamarin.Android等均已加入在線訂購,現(xiàn)在搶購可立享優(yōu)惠!

        關(guān)注慧聚IT微信公眾號???,了解產(chǎn)品的最新動態(tài)及最新資訊。

    慧聚IT

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();