TeeChart(2)

 

介绍

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

 

正文

由于前段时间在实现一个项目中需要进行很多的历史信息的统计,尤其在曲线分析的功能设计的时候,客户对这块的功能要求多,需要能够对历史记录的点的信息进行多时段的查询.(历史记录信息采取1分钟保存一个点的方法),且需要对局部进行分析,在综合了很多曲线控件和一些别的实现方法后,决定采用TeeChart控件实现.在搜索了网络上面关于这个控件VC环境使用的方法后没有发现一个完整的控件使用工程,于是在配合帮助文档和网络信息后完成了曲线分析的开发,现将开发经验分享如下:希望对那些寻求相关信息的人有帮助

    首先启动VC建立一个基于对话框程序的工程(如果建立SDI工程也可以,不过要对控件进行动态创建等工作实在太麻烦了),然后Insert ActiveX Controls->选择TeeChart控件加入到工程中间.然后通过classWizard定义控件变量.这时编译器会自动加载一系列的控件相关的类到程序中间来.

    然后打开曲线配置属性,在Series属性页加入两条fastline曲线(见下图)

定位到Tools属性页,加入一些相关的Tools(见下图)

准备工作完成了,我们现在开始编写加入程序数据方法编程了,这里采用加入随机数的方法(0-300的随机数)

#define GetRandom( min, max ) ((rand() % (int)(((max)+1) - (min))) + (min))

 

这里在初始化曲线的时候就采用控件的AddXY接口加入了1440个点的随机数,这里采用的条件为历史为一天,且当天一分钟保存一个历史点信息,全天的历史点为(60*24 = 1440),我们可以在调用的时候根据调用的时间间隔长短进行动态的修改

void CTestTeeChartDlg::InitChart()

    m_ctrlChart.Series(0).Clear();

    m_ctrlChart.Series(1).Clear();

    m_ctrlChart.GetPage().SetMaxPointsPerPage(1440);

 

    COleDateTime CurTime = COleDateTime::GetCurrentTime();

    COleDateTime tempTime ;

    tempTime = CurTime; 

 

    CurTime.SetTime(0,0,0);

    CurTime.SetDate(tempTime.GetYear(),tempTime.GetMonth(),tempTime.GetDay());

    COleDateTimeSpan tmSpan = COleDateTimeSpan(0,0,1,0);

    CString csTime ;

    for(int i=0; i<1440; i++) 

    {

        csTime = CurTime.Format("%H:%M");     

 

        float fzVal = float(GetRandom(12000,28000)/100); 

        m_ctrlChart.Series(0).AddXY(i,fzVal,csTime,i);

        fzVal = float(GetRandom(15000,25000)/100); 

        m_ctrlChart.Series(1).AddXY(i,fzVal,csTime,i);

 

        CurTime += tmSpan;

    }

 

    m_ctrlChart.GetAxis().GetLeft().SetMinMax(100, 300);

至此,编译运行就可以看到我们的曲线了.但是曲线在运行的时候我们虽然能够看到曲线的信息,但是如果我们鼠标在曲线上面移动的时候不能动态显示鼠标当前位置的数据值,由于我们在Tools中加入了Annotation工具,在这里我们OnMouseMoveTchartPlan消息来实现鼠标移动的时候数据变化的显示.

我们在H中加入定义:

void OnMouseMoveTchartPlan(long Shift, long X, long Y); 

DECLARE_EVENTSINK_MAP()

在实现中加入:

BEGIN_EVENTSINK_MAP(CTestTeeChartDlg, CDialog)

    ON_EVENT(CTestTeeChartDlg, IDC_TCHART1, 20, OnMouseMoveTchartPlan, VTS_I4 VTS_I4 VTS_I4)

END_EVENTSINK_MAP()

 

实现体:

void CTestTeeChartDlg::OnMouseMoveTchartPlan(long Shift, long X, long Y)

    int nP = -1;

    double xValue = m_ctrlChart.Series(0).XScreenToValue(X) + 0.5;

    nP = (int)(xValue); 

    if(nP < 0)

    {

        return ;

    }

    CValueList xList =     m_ctrlChart.Series(0).GetXValues();

    CValueList yList =     m_ctrlChart.Series(0).GetYValues();

    CValueList yPlanList =     m_ctrlChart.Series(1).GetYValues();

    CString csLabel = m_ctrlChart.Series(0).GetPointLabel(nP);

 

    double xV = xList.GetValue(nP);

    double xFacY = yList.GetValue(nP);

    double xPlanY = yPlanList.GetValue(nP);

    CToolList tlist = m_ctrlChart.GetTools();

    CTools  tools = tlist.GetItems(1);

    CAnnotationTool ant = tools.GetAsAnnotation();

    CString stmep;

    stmep.Format("时间: %s   功率(P): %4.2f kW    功率(Q): %4.2f kW",csLabel, xFacY, xPlanY);

    ant.SetText(stmep);  

}

 

程序的运行功能见下:

一:

二:

三:

详细实现细节见源程序

 

 

综述:

    这里简单介绍了TeeChart控件在VC环境中实现曲线分析的一种简单的方法,当然该控件还提供了十分丰富的接口给我们完成非常多的功能.如果有好的建议请与我联系: 

QQ:5516853

EMAIL:successq_g@163.com

 

源文档 <http://www.j2soft.cn/article/2008/1106/article_273.html

 

<think>好的,我现在需要处理用户关于TeeChart的查询。用户提到他们想了解或使用TeeChart相关的技术信息,特别是教程和示例代码的下载。首先,我需要确认用户的具体需求是什么,他们可能是在开发中遇到了问题,或者刚开始使用TeeChart,需要基础指导。 根据用户提供的引用内容,他们提到的是Java TeeChart的使用,但引用的示例代码看起来像是VB或C#的语法,比如axTChart1.Series(i).AddXY方法。这可能意味着用户可能在混淆不同的语言版本,或者引用来源有误。因此,我需要先澄清TeeChart在不同语言中的使用情况,避免给出错误的指导。 接下来,用户需要教程和示例代码。TeeChart有多个版本,包括.NET、Java、PHP等,每个版本的教程和资源可能不同。我需要确定用户使用的是哪个版本,但根据问题描述,用户可能是在使用Java版本,但示例代码看起来像.NET的,所以可能需要进一步确认。不过,假设用户确实在使用Java版本,我需要提供相应的资源链接。 另外,用户可能需要下载示例代码。通常,TeeChart的官方网站会提供示例代码和文档,但可能需要购买或注册后才能下载。对于开源或免费版本,可能有不同的获取方式。此外,GitHub或其他代码仓库可能有社区贡献的示例,这也是一个资源来源。 我还需要检查用户提供的引用链接是否有效,但用户给出的引用链接似乎是一个示例,可能并不存在。因此,应该引导用户到官方网站或可信的资源站点获取资料。 另外,用户的问题可能需要分步骤回答:首先介绍如何获取教程,然后是如何下载示例代码,可能还需要说明如何安装和配置TeeChart库。同时,要确保回答符合系统级指令,比如使用正确的中文,数学公式用$符号包裹,但在这个问题中可能涉及较少数学内容,但如果有代码示例,需要正确使用代码块格式。 可能还需要提醒用户注意不同编程语言下的TeeChart使用差异,比如在Java、C#或PHP中的API可能不同,避免用户混淆。此外,如果用户遇到具体的问题,比如如何添加数据点,可以给出具体的代码示例,如引用中的AddXY方法,但要确保示例代码的语言正确性。 最后,生成相关问题,可能需要围绕TeeChart的安装、基本使用、高级功能、问题排查等方面展开。确保问题对用户进一步探索有帮助。</think>### TeeChart使用教程与示例代码获取指南 TeeChart是一个跨平台图表控件库,支持.NET、Java、PHP等多种语言。以下是关键步骤: 1. **官方资源获取** - 访问[TeeChart官网](https://www.steema.com/) - 选择对应语言版本(如Java/JS版入口为[TeeChart Java](https://www.steema.com/teechart/java)) - 在文档中心查看《TeeChart Pro Java Tutorials》 2. **数据添加示例(Java版)** ```java // 创建Series对象 Line series = new Line(chart1.getChart()); // 添加数据点 series.add(10, 20); series.add(20, 35); ``` 3. **示例代码获取途径** - 购买授权后获得完整示例包 - GitHub搜索[TeeChart-Java-Examples](https://github.com/Steema/TeeChart-for-Java/tree/main/demos) - 官方论坛[Steema Community](https://support.steema.com/)获取代码片段 4. **快速上手步骤** ① 下载[TeeChart Java评估版](https://www.steema.com/downloads/java) ② 导入`teechart.jar`到项目 ③ 参考基础教程创建柱状图: ```java Chart chart = new Chart(); Bar series = new Bar(chart.getChart()); series.add(15, "Q1"); series.add(25, "Q2"); ``` [^1]: 基础数据添加方法参考自TeeChart官方Java文档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值