Teechart图表应用技术详解—第五章之TeeChart实时监控原理和轴管理工具
Steema公司和慧都科技针对中国市场联合推出中文版TeeChart for .NET图表控件,一共汉化2000个词条(17000个单词),汉化文档35000个单词,包括控件设计时与运行时的界面汉化以及控件使用向导文档的汉化,总汉化90%以上!
TeeChart for .NET中文版让您在使用和学习上没有任何语言障碍,至少可以节省30%的开发时间。TeeChart for .NET中文版具有易上手,使用方便,稳定性好,性价比高,价格优惠等优势,并且针对Web应用提供无限制服务器分发授权方式,非常有利于产品集成。
实时监控是以时间为基准的连续描述信息变化的一种监控方法,在各行各业都具有广泛的应用,因此,以图表形式实时记载信息变化曲线给TeeChart赋予了重要的任务。
TeeChart实时监控原理
Chart图表是在一个固定区域中显示指定信息,当需要实时监控时就保持当前时刻以前个时间段的信息,随着时间的推移,这个时间段会发生新的变化,也就说在这个显示区域总是显示最新时间段的信息。那么,就需要在增加一个新时间点后,将原来显示的信息平移出显示区域一个时间点,不断重复这个操作,就实现了实时的监控操作。
使用TeeChart的轴管理工具
TeeChart提供了5个有关轴管理的工具,其中Axis Scroll、Axis Arrows两个工具与轴的滚动密切相关,而由Axis Scroll实现轴滚动更为方便。
Axis Scroll轴滚动工具
在TeeChart的图表编辑器中,单击Tools选项卡,单击Add按钮,显示Chart Tools Gallery弹出窗口,如下图1所示。
在下图1的Axis选项卡中选择 Axis Scroll工具,然后单击Add按钮,这时图表编辑器的Tools选项卡变为如图2所示的界面,坐标轴滚动工具Axis Scroll已处于激活状态( Active=true),并在Axis列表框显示Bottom Axis关联,即该轴滚动工具与Bottom Axis关联。也就是说可以对这个轴进行滚动操作。
Axis Scroll工具的主要属性
Axis Scroll工具是一个TAxisScrollTool对象,其中包含TChartAxis对象,这是一个专门用来管理图表坐标轴的对象,该对象的Scroll方法为滚动坐标轴提供了方便。如:
ChartTool1.Axis.Scrol1(1.0);
实际上,只需要使用这个方法就可以实现滚动。当然,如果要对坐标轴实现其他操作可以利用工具提供的其他属性、方法和事件。
代码实现
一个窗口区域显示的数据点数是固定的,当点数超过指定值后,就应该加入新的点而移出最旧的点,这样就是一个窗口滚动的过程。为了模拟实时监控状态,可以利用定时器来实现,在定时器的 OnTimer事件中加入下列代码
n:=Random(100); //随机数发生器 Series1. Add(n, TimeToStr(Time)); //增加当前点,并在X轴上标注当前时间 Series1. RefreshSeries; //刷新序列 if Series1.Count >100 then //判断当前窗口的点数是否超过100个点 ChartTool1.Axis.Scroll(1.0); //当大于100点时每次规动1.0个单位
即窗口中的点数超过100时,移动1.0个单位。
应用实例
建立一个新工程,并按下表所示设置组件属性,设计阶段的界面如图3所示。
组件名 | 属性 | 设置 | 说明 |
TChart | Name | Chart1 | 图表组件 |
TLineSeries | Name | Series1 | 线型序列组件 |
TTimer | Name | Timer1 | 定时器 |
Interval | 100/500/1000 | ||
TComboxBox | Name | ComboxBox1 | 数据频率选择 |
Items | 100/500/1000 | ||
TRadioGroup | Name | RadioGroup1 | 功能选择 |
Items | 执行实时监控/记录历史状态 | ||
TCheckBox | Name | CheckBox1 | 用作定时器开关 |
Checked | False |
在ComboBox1Change事件中加入下列代码,用于设定时间间隔,即数据采集频率:
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事件中加入下列代码,根据分组框的功能选择,确定定时器的工作方式以及序列数据的追加、屏幕滚动等属性。
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;
该条语句用于控制定时器的打开与关闭以实现功能切换。该实例运行阶段的界面如下图所示。
相关资料推荐:
上一章:综合应用实例
下一章:使用极值控制实现实时监控
=====================================
现TeeChart for .NET,TeeChart for JavaScript/HTML5,TeeChart for Xamarin.Android等均已加入在线订购,现在抢购可立享优惠!
关注慧聚IT微信公众号???,了解产品的最新动态及最新资讯。