c#中teechart怎么样使用addarray

 我来答
xiangjuan314
2016-06-02 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2886万
展开全部
初用teechart,从写代码的便利程度来看确实是好东西,不过总感觉在网上找的资料与自己在VS2008中的用法不太一样,很明显的一点就是各种强制转换。
teechart中用于添加数据的函数有Add,AddArray,AddXY等,此处记录自己在VS2008中AddArray的用法。
由于需要添加大量数据(10000以上),因此,用AddXY一个一个加感到速度乏力。但在网上找了N久都没找到过原型为AddArray(long ArraySize, VARIANT &YArray, VARIANT &XArray)的用法例程,其实关键在于不知怎样将一个数组转化为VARIANT。
1:添加成员变量
VARIANT vAX,vAY;
VARIANT &AX;
VARIANT &AY;
SAFEARRAY *psax;
SAFEARRAY *psay;

vAX,vAY为变体的实体,AX,AY为引用变量,AddArray函数格式要求。
其中AX,AY需要在构造函数中初始化,如下:
CteetestDlg::CteetestDlg(CWnd* pParent )
: CDialog(CteetestDlg::IDD, pParent)
,AX(vAX),AY(vAY)
2:初始化
SAFEARRAYBOUND rgsabound;
rgsabound.cElements=10000;
rgsabound.lLbound=0;
psax=SafeArrayCreate(VT_R8,1,&rgsabound);
psay=SafeArrayCreate(VT_R8,1,&rgsabound);
AX.vt=VT_ARRAY|VT_R8;
AX.parray=psax;
AY.vt=VT_ARRAY|VT_R8;
AY.parray=psay;

3:添加数据,画图
以下是在一个按键的响应函数中实现的
int index=0;
void CteetestDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
((CSeries)m_chart.Series(0)).Clear();
long i;
double j,t;
for(i=0;i<10000;i++)
{
j=i;
t=index*0.1*j;
SafeArrayPutElement(psax,&i,&j);
SafeArrayPutElement(psay,&i,&t);
}
index++;
((CSeries)m_chart.Series(0)).AddArray(10000,AY,AX);
}
ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式