Z
zcjohnson2
Unregistered / Unconfirmed
GUEST, unregistred user!
做自来水厂检测程序,现在希望把实时的检测量在TCHART上动态的由左向右移动,看过一些帖子,不是很清楚,有哪位高手给个有注释的例子,时间轴最好也能随着检测量检测时间的变化而变化
1。首先在TChart上加一条TFastLineSeries(实时数据用这个比较好),然后把横坐标设为TDateTime。这个没问题吧。
2。然后设置横坐标的显示格式和范围
with Chart1.BottomAxisdo
begin
Automatic := False;
DateTimeFormat := 'hh:mm:ss';//横坐标的显示格式,可改为'ss'
SetMinMax(IncMinute(Now, -1), Now);//起始坐标从现在前的一分钟,到现在。使用IncMinute需要uese DateUtils
Increment := (tmpTime - IncMinute(tmpTime, -2)) / 4;//坐标分格
end;
3。增加实时数据(函数有很多)例:
Series1.AddXY(X, Y);//X:=Now 是时间,Y是你获得的数据。这个函数还可以根据需要加很多参数,包括颜色什么的
此时还要改变坐标,否则不会动态移动。
Chart1.BottomAxis.SetMinMax(IncMinute(Now, -1), Now);//跟初试设置一样
这是以前帖子上发现的
我想做的是五秒一次数据,08:06:45>08:06:50>08:06:55>08:07:00类似这样十个数据
然后根据时间推移,X轴显示的时间也能向左移,X轴如何设置为时间轴,好像CHART是不是要用代码实现?记得DBCHART是直接久可以
有个单选框TDATETIME
有高手有例子吗?动态画曲线和串口有关的,DEMO里的例子我看过了,不过好像X轴的坐标没有移动,有的话发到我邮箱zcdelphi7@126.com.解决问题马上给分
1。首先在TChart上加一条TFastLineSeries(实时数据用这个比较好),然后把横坐标设为TDateTime。这个没问题吧。
2。然后设置横坐标的显示格式和范围
with Chart1.BottomAxisdo
begin
Automatic := False;
DateTimeFormat := 'hh:mm:ss';//横坐标的显示格式,可改为'ss'
SetMinMax(IncMinute(Now, -1), Now);//起始坐标从现在前的一分钟,到现在。使用IncMinute需要uese DateUtils
Increment := (tmpTime - IncMinute(tmpTime, -2)) / 4;//坐标分格
end;
3。增加实时数据(函数有很多)例:
Series1.AddXY(X, Y);//X:=Now 是时间,Y是你获得的数据。这个函数还可以根据需要加很多参数,包括颜色什么的
此时还要改变坐标,否则不会动态移动。
Chart1.BottomAxis.SetMinMax(IncMinute(Now, -1), Now);//跟初试设置一样
这是以前帖子上发现的
我想做的是五秒一次数据,08:06:45>08:06:50>08:06:55>08:07:00类似这样十个数据
然后根据时间推移,X轴显示的时间也能向左移,X轴如何设置为时间轴,好像CHART是不是要用代码实现?记得DBCHART是直接久可以
有个单选框TDATETIME
有高手有例子吗?动态画曲线和串口有关的,DEMO里的例子我看过了,不过好像X轴的坐标没有移动,有的话发到我邮箱zcdelphi7@126.com.解决问题马上给分