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

bcb的Canvas控件中怎么在第二次画曲线时自动删除第一次画的曲线呢?

2013-01-08 
bcb的Canvas控件中怎样在第二次画曲线时自动删除第一次画的曲线呢??我的部分程序如下://-----------------

bcb的Canvas控件中怎样在第二次画曲线时自动删除第一次画的曲线呢??
我的部分程序如下:
//-----------------补偿回路报警A相电流值波形图---------------
  this->Image2->Canvas->MoveTo(0, Image2->Height);

  Image2->Canvas->FillRect(ClientRect);//这句语句我本想用它来删除前一次的曲线的,但没有成功以前的曲线同时在Image2上出现。

  for(int i = 0; i < listA->Count; i++)
  {
  //Form5->Image2->Canvas->MoveTo(0, 0);
   this->Image2->Canvas->LineTo(x, Image2->Height - StrToFloat(listA->Strings[i]) );
   //x += 20;
   x +=Image1->Width/listA->Count;
  我新建一个bcb在上面放一个image1控件和一个button1代码改了一下,  这句Image2->Canvas->FillRect(ClientRect);照样用,但结果却大大不同。新开的可以删除前一次的曲线,修改后的代码是:
  this->Image1->Canvas->MoveTo(0, Image1->Height);
  int x = 20;

  Image1->Canvas->FillRect(ClientRect);

  for(int j = 0; j< 20; j++)
  {

    this->Image1->Canvas->LineTo(x, Image1->Height - random (10) * j);
    x += 20;
求求各位大侠帮帮忙吧!!
  }
[解决办法]
同样的线条以异或的方式重画一次就清除了。
[解决办法]
1)记住上次画线路经,再画一条颜色和背景一样就等于删除了
2)填充这个区域也行
[解决办法]

引用:
我的部分程序如下:
//-----------------补偿回路报警A相电流值波形图---------------
  this->Image2->Canvas->MoveTo(0, Image2->Height);

  Image2->Canvas->FillRect(ClientRect);//这句语句我本想用它来删除前一次的曲线的,但没有成功以前的曲线同时在Image2上出现。
……

你这个自己划线总感觉不方便,
还是使用控件好些

热点排行