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

急在c++ builder中怎么让Chart画图控件怎样刷新?拜托各位帮帮忙

2012-12-29 
急急急!在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还是那一组数据,下面是另一种结果:


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();
    }

热点排行