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