首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

急在c++ builder中怎样让Chart画图控件怎样刷新?拜托各位帮帮忙!该如何解决

2012-04-07 
急急急!在c++ builder中怎样让Chart画图控件怎样刷新??拜托各位帮帮忙!我要实现的结果是让Chart画的波形像

急急急!在c++ builder中怎样让Chart画图控件怎样刷新??拜托各位帮帮忙!
我要实现的结果是让Chart画的波形像示波器那样一直都满屏,不要像我现在的程序每画满100个点后全部清除然后再从左往右画。我想实现当Chart画满100个点时,从左边开始每画一个点就同时把原来最右边的第100个点自动删除,让画面上一直保持有100个点,其他的点不变让他们继续显示。我程序如下:

 int NumPrint3=0;
void __fastcall TForm9::Timer1Timer(TObject *Sender)
{
  Series3->AddY(c1);
  Series2->AddY(c2);
  Series1->AddY(c3);

  if(NumPrint3<101)
  {
  Chart1-> Refresh();

  NumPrint3++;
  }
  else
  {
  NumPrint3=0;
  Series3->Clear();
  Series2->Clear();
  Series1->Clear();
  Chart1-> Refresh();
  }
}


[解决办法]
只能说一下我曾经是怎样做的。

我当时是做了一个大量数据滚屏显示的功能。我定义了一个二维的 Variant 型数组,滚屏时,将新的数据复制到这个数字的一个维中。然后将数组赋给控件的 ChartData 属性:MSChart1.ChartData = varValues,滚屏就完成了。
[解决办法]
yt还是那一组数据,下面是另一种结果:

C/C++ code
    Chart1->BottomAxis->SetMinMax(0, 165 );    Chart1->LeftAxis->SetMinMax(0, 50 );    for ( int i = 0; i < 5; i++ )    {        for ( int j = 0; j < 165; j++ )        {            Chart1->Series[0]->AddXY ( j, yt[j], "", clTeeColor );            Application->ProcessMessages();            Chart1->Refresh();        }        if ( i < 4 )            Chart1->Series[0]->Clear();    } 

热点排行