您现在的位置:首页 >> 图形媒体 >> TeeChart >> 内容

汉化版TeeChart使用教程一:在VC中进行实时曲线绘制

时间:2012/10/29 13:27:20 点击:

  核心提示:一:TeeChart介绍  TeeChart Pro是一款提供上百种2D和3D图形风格、40种数学和统计功能、加上无限制的轴和22种调色板组件供选择。提供上百种2D和3D图形风格、40种数学和统计功能、加上无限制的轴和22种调色板组件供您选择。提供上百种2D和3D图形风格、40种数学和统计功能、加上...

一:TeeChart介绍

  TeeChart Pro是一款提供上百种2D和3D图形风格、40种数学和统计功能、加上无限制的轴和22种调色板组件供选择。提供上百种2D和3D图形风格、40种数学和统计功能、加上无限制的轴和22种调色板组件供您选择。提供上百种2D和3D图形风格、40种数学和统计功能、加上无限制的轴和22种调色板组件供选择,TeeChart还包括一个强大的、完整的编辑对话框,几乎可用于每个组件和子组件,允许你快速的设计复杂图表应用程序。图表编辑器通过 TeeCommander组件进一步得到增强,它提供一次点击访问图表编辑器和共同特征。

附:TeeChart汉化版下载链接

二:主要特性

●是32位ActiveX控件,可以在VB、Delphi、MS Office等多种编程环境下使用;

●可以直接存取ODBC数据源;

●具有11种标准的和9种扩展的Series类型;

●提供16种统计函数;

●支持2D和3D效果,支持缩放和滚动;

●可以将图表输出为Bitmap、Metafile、JPEG 或者Native Chart 格式;

●支持用户绘图和打印;

●是集成化的设计工具;

●提供例子和在线帮助。

三:TeeChart类的属性和方法

  TeeChart的主类是TChart。TChart中使用了众多的属性方法和事件,随着版本的升级将越来越丰富。这使得TChart具有非常强大的功能。本文仅简单地介绍其中一些重要类的属性和方法。

●TChart.Height:图表的高度(像素);

●TChart.Width:图表的宽度(像素);

●TChart.Header:图表的题头(Ititles类);

●TChart.Series:序列(Series类的数组);

●TChart.Axes:坐标轴(Iaxes类);

●TChart.Legend:图例(Legend类);

●TChart.Panel:面板(Ipanel类);

●TChart.Canvas:画布(Canvas类)。

Series是要显示的数据的主体。在一个图表中可以有一个或多个序列,每个序列可以有不同的显示类型,如Line、Bar、Pie等等。

Axes控制图表坐标轴的属性,在缺省的情况下,坐标轴可以自动地根据不同的数据设置好标度范围和间隔,当然也可以手工调整。

Legend控制图表的图例显示。Legend是图表中的一个长方形的用来显示图例标注的区域。可以标注Series的名称或者Series中的项目和数值。

Panel可以设置图表的背景。可以使用渐变的颜色或者图像文件作为整个图表的背景

Canvas可以让设计者绘制自己的图形。使用方法和Delphi中的Canvas一样。有TextOut、LineTo、Arc等各种画图的方法可以调用。

TChart的一些属性实际上是其他类的变量,这些类又具有自己的属性和方法。如Ititles类又具有Text、Color、Font等属性,我们可以用这些属性来设置题头的文本、颜色和字体。

TeeChart和其他的图表控件相比,有一个非常重要的特点是TeeChart可以把图表保存为一个JPEG格式的图形文件。调用格式如下:

TChart.Export.SaveToJPEGFile (FileName,Gray,Performance,Quality,Width,Height)

其中FileName是JPEG文件的保存路径和文件名,路径应该是操作系统中的绝对路径,而不是IIS中的相对路径,IIS对相应的保存目录应该具有写权限。Gray指明是否保存为黑白图像。Performance指明JPEG是生成质量优先还是速度优先。Quality是一个0到100的整数,100时JPEG质量最好,但文件最大;Quality越小则生成的文件越小,但图像质量也随之下降。

四:VC

  对于Visual C++就不做多的介绍了,因为发现也没有什么特别的语言去介绍该语言的功能。这里采用Visual C++6,TeeChart版本为5来实现。

五:实现办法

一)导入vc中

1) 将TeeChart5进行系统注册。

2) 在VC中选择 Project / Add to Project / Components And Controls/下选择Registered ActiveX Controls,然后找到TeeChart Pro Activex control v5。选择确定即可,这样在我们的项目中出现很多的类,同时在控件区域会出现

二)属性设置

单击右键,选择Edit

当然,也可以根据要求,在语言里面进行处理。但是也必须包含以下的头文件

#include "tchart.h"

#include "series.h"

#include "valuelist.h"

#include "axes.h"

#include "axis.h"

#include "pen.h"

#include "axislabels.h"

#include "teefont.h"

#include "axistitle.h"

#include "aspect.h"

#include "fastlineseries.h"

#include "titles.h"

#include "fastlineseries.h"

#include "panel.h"

#include "legend.h"

#include "tools.h"

#include "toollist.h"

#include "annotationtool.h"

设定信息如下(该CHART控件名称为:m_Chart)

//清空chart

m_Chart.ClearChart();

m_Chart.RemoveAllSeries();

//CHART框架

m_Chart.GetFrame().SetVisible(true);

m_Chart.GetFrame().SetColor(RGB(255,255,255));

/*根据自定义背景色来设置,我这里设定背景色为白色,所以也设定为边框为白色,这样就看不到的,如果不加入,该颜色就默认为黑色的

//重要,否则出现边框为默认黑色的.如果要改变背景颜色,那么对应的此处颜色要进行更改的

*/

m_Chart.GetPanel().SetColor(RGB(255,255,255));

m_Chart.GetLegend().SetVisible(false);

// 添加3条曲线

m_Chart.AddSeries(0);

m_Chart.AddSeries(0);

m_Chart.AddSeries(0);

// 设置3条曲线的坐标轴

m_Chart.Series(0).SetVerticalAxis(0);

m_Chart.Series(1).SetVerticalAxis(0);

m_Chart.Series(2).SetVerticalAxis(0);

m_Chart.Series(0).SetHorizontalAxis(1);

m_Chart.Series(1).SetHorizontalAxis(1);

m_Chart.Series(2).SetHorizontalAxis(1);

m_Chart.Series(0).GetXValues().SetDateTime(true);

m_Chart.Series(1).GetXValues().SetDateTime(true);

m_Chart.Series(2).GetXValues().SetDateTime(true);

// 设置3条曲线的颜色

m_Chart.Series(0).SetColor(RGB(255,0,0));

m_Chart.Series(1).SetColor(RGB(0,255,0));

m_Chart.Series(2).SetColor(RGB(0,0,255));

// 设置3条曲线的名称

m_Chart.Series(0).SetName("ZongFengGuan");

m_Chart.Series(1).SetName("LieCheGuan");

m_Chart.Series(2).SetName("ZhiDongGang");

//-----设定最大最小值

m_Chart.GetAxis().GetBottom().SetMinMax(minStar,minEnd);

// minStar,minEnd要求自己去添加,这里用的是时间的范围

//一般为起始时间和结束时间的范围的

// 连接数据库

CXDatabasedb;

_RecordsetPtrpRs;

CStringstrSql;

if(!db.Connect("ACCESS","",GetRootDir()+"\\db1.mdb","",""))

{

AfxMessageBox("连接数据库失败!");

return;

}

strSql.Format("select * from %s where RunTime>=#%s# and RunTime<=#%s#",m_strTableName,strMinTime,strMaxTime);

pRs = db.ExecuteSql(strSql);

while(pRs!=NULL && !pRs->adoEOF)

{

// 添加数据点

double dTime = oletime2chttime(COleDateTime(pRs->GetCollect("RunTime")));

double dZFGPress = var2dbl(pRs->GetCollect("ZFGPress"));

double dLCGPress = var2dbl(pRs->GetCollect("LCGPress"));

double dZDGPress = var2dbl(pRs->GetCollect("ZDGPress"));

m_Chart.Series(0).AddXY(dTime,dZFGPress,NULL,RGB(255,0,0));

m_Chart.Series(1).AddXY(dTime,dLCGPress,NULL,RGB(0,255,0));

m_Chart.Series(2).AddXY(dTime,dZDGPress,NULL,RGB(0,0,255));

pRs->MoveNext();

}

// 断开数据库连接

db.Disconnect();

 

作者:besy 录入:besy 来源:转载
  • 上一篇:没有了
  • 下一篇:没有了
  • 共有评论 0相关评论
    发表我的评论
    • 大名:
    • 内容:
    本类推荐
    • 没有
    本类固顶
    • 没有
  • 盒子文章(www.2ccc.com) © 2024 版权所有 All Rights Reserved.
  • 沪ICP备05001939号