请教高手!C++Builder中如何动态创建TChart图形?谢谢!

jingmch 2010-10-19 10:00:03
请教高手!C++Builder中如何动态创建TChart图形?谢谢!
...全文
328 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cptang 2010-11-21
  • 打赏
  • 举报
回复

void TDataMiningForm::drawLine(int colNum, AnsiString NameZ[])
{
TColor theColor[16] = {clRed,clGreen,clYellow,clBlue,clWhite,clGray,clFuchsia,clTeal,clNavy,clMaroon,clLime,
clOlive,clPurple,clLtGray,clAqua,clBlack};
int iColorSel;
Chart1->SeriesList->Clear();
Chart1->Title->Visible = 0;
for(int i=0; i<colNum; i++)
{
iColorSel = i % 16 ;
Linetrue = true;
TLineSeries *theSeries;
theSeries = new TLineSeries(this);
theSeries->SeriesColor = theColor[iColorSel] ;
theSeries->Title = NameZ[i];
theSeries->ParentChart = Chart1;
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("select total,namex from tang where namez='"+NameZ[i]+"'");
Query1->Open();
Query1->First();
while(!Query1->Eof)
{
theSeries->Add(StrToFloat(FormatFloat("0.00",Query1->FieldByName("total")->AsFloat)),Query1->FieldByName("namex")->AsString,theColor[iColorSel]);
Query1->Next();
}
}
}
//---------------------------------------------------------------------------
勉励前行 2010-10-21
  • 打赏
  • 举报
回复
我是说创建多个TChart图形,如何实现?

下面創建 n 个TChart图形 :
for(int i= 0 ; i < n ; ++i)
{
TChart *cht = new TChart(this);
cht1->Parent = this;
}

我是想說,樓主問題描述不夠明確,想幫你的人不好下手。
zzbinfo 2010-10-19
  • 打赏
  • 举报
回复
你说的是不是这个呀
TAreaSeries *series = new TAreaSeries(NULL);
series->Add(2,"测试",TColor(123,123,4));
// series->Add(3,"测试",TColor(123,123,4));
series->Add(4,"测试",TColor(123,123,4));
// series->AddNull("asd");
/*TChartSeries *series = new TChartSeries(NULL);
series->Add(2,"测试",TColor(123,123,4));
*/


cht1->AddSeries(series);
jingmch 2010-10-19
  • 打赏
  • 举报
回复
我是说创建多个TChart图形,如何实现?谢谢!

zzbinfo 2010-10-19
  • 打赏
  • 举报
回复

TChart *cht1 ;
cht1 = new TChart(this);
cht1->Top = 0;
cht1->Left = 0;
cht1->Height = 300;
cht1->Width = 300;
cht1->Parent = this;
jingmch 2010-10-19
  • 打赏
  • 举报
回复
在线等。急!急!
含有全部工程文件,使用C++ Builder 6.0完成开发,可重新编译运行。创作权归曹润泽所有,使用者不可用于商业目的,否者后果自负。 本软件功能: 上层的应用软件的模块主要有:初始化模块、用户设置模块、COM串行通信数据采集模块、数据矫正模块、数据绘图模块、数据存储模块、网络传输模块、功能整合模块等。其网络传输模块又可以根据工作模式分为服务端网络传输模块和客户端网络传输模块。 用户设置模块:主要是通过用户设置设置窗口的信息来完成软件的设置,这些可以设置的变量都非常重要,包括基本设置:采样频率设置、COM端口选择、警告限设置(是否使用警戒限、高警戒限的大小、低警戒限的大小)、矫正表设置(是否使用矫正表、选择矫正表);绘图设置:显示点数设置、曲线宽度设置、曲线颜色设置(高警戒曲线的颜色、正常时曲线颜色、低警戒曲线的颜色设置);网络设置:是否使用网络传输、网络基本设置(服务端选择、客户端选择、端口号设置、服务端IP设置)。 COM串行通信数据采集模块:用于从串行口读取数据。 本系统使用专门用于RS-232串行通信通信控制的控件TComm控件来完成COM通信。 数据矫正模块,顾名思义,是用于对数据进行矫正的。若需要矫正数据,必须使用矫正表,矫正表实际上只是个用户可自定义的文本文件,但在编写矫正表文件时必须按照一定规则进行编写。 数据绘图模块:对于采集数据的实时绘图是通过Borland C++ Builder 6.0自带的功能强大的TChart控件来实现。 数据存储模块:该模块除了使用了编译器所提供的几个基本数据类型之外,基本上是使用纯C++编写(不使用编译器的控件)。数据存储并未使用数据库存储,而是使用文本文件的方式对所有采集到的时间进行存储,存储时要先把采样信息写入到数据文件的头部,包括创建时间、采样起始时间、采样持续时间、采样结束时间、采样频率、采样数等等信息,之后就是所采集的数据,采样数据包括数值和采集的该点所对应的时间,以及该点是否被警告(过低用!Low表示、正常用-表示、过高用!High表示)。 网络传输模块:网络传输模块是本数据采集系统比较新颖的模块,可以使用互联网进行速率较低的数据传输,考虑到网络传输的延迟,故设计时设置的采样速率比较低。网络传输模块实际上是使用Socket编程实现的,在Borland C++ Builder有封装好的用于网络通信的控件:TServerSocket和TClientSocket。

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧