TChart显示曲线的问题

cgj820307 2006-09-13 10:13:52
我用了TChart控件记录数值变化,纵轴用了Automatic,横轴为0-19。当程序开始运行时,只看到纵轴的范围不断变化,但看不到图线生成。这是怎么回事????
X=0.0;
for(int i=1;i<=30;i++)
{
Form1->Series1->AddXY(X,random(10),"",clBlack);
if(X>=20)
{
Form1->Chart1->BottomAxis->Maximum=X;
Form1->Chart1->BottomAxis->Minimum=X-20+1;
}
X++;
Sleep(500);
Application->ProcessMessage();
}
...全文
349 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yf2100 2006-09-14
  • 打赏
  • 举报
回复
楼主的代码是没问题的,除非....X=0.0不是在同一个function里赋的初值,,,否则...就算是把X定义为float类型的也可以运行。。。。(除了Application->ProcessMessages()少了一个“s”)

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float X=0.0;
for(int i=1;i<=30;i++)
{
Form1->Series1->AddXY(X,random(10),"",clBlack);
if(X>=20)
{
Form1->Chart1->BottomAxis->Maximum=X;
Form1->Chart1->BottomAxis->Minimum=X-20+1;
}
X++;
Sleep(500);
Application->ProcessMessages();
}
}
//---------------------------------------------------------------------------
YJS050320001 2006-09-14
  • 打赏
  • 举报
回复
楼主的代码没有问题
如果出现不显示的曲线的问题 应该是楼主把X=0.0这个赋初值放错了地方。
BlueDeepOcean 2006-09-13
  • 打赏
  • 举报
回复
-_-# 搂主的代码不出现结果是正常的,如果出现了,那就不正常了。根据要求更改如下:

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

int X;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
X=0.0;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{

for(int i=1;i<=30;i++)
{
Form1->Series1->AddXY(X,random(10),"",clBlack);
if(X>=20)
{
Form1->Chart1->BottomAxis->Maximum=X;
Form1->Chart1->BottomAxis->Minimum=X-20+1;
}
X++;
Sleep(500);
Application->ProcessMessages();
}
}
//---------------------------------------------------------------------------

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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