我用下面的过程,procedure TForm1.Button1Click(Sender: TObject);
begin
  canvas.brush.style:=bssolid;
  canvas.brush.color:=clwhite;
  canvas.rectangle(0,0,width,height);
end;来清除form1.canvas上画的和写的东西,有时竟清除不了,为什么?

解决方案 »

  1.   


    procedure TForm1.Button1Click(Sender: TObject);
    begin
      canvas.brush.style:=bssolid;
      canvas.brush.color:=clwhite;
      canvas.FillRect(Rect(0,0,width,height));
    end;
      

  2.   

    看什么情况下不能清除,正常应该是可以的!用FillRect处理好点!
      

  3.   

    不要直接画在控件的canvas上,画在一个内存bitmap上,然后把bitmap的canvas绘制到控件上
      

  4.   

    不会有什么病毒的,可能是因为刷新不及时,例如你的程序进行比较大的运算,主界面刷新不及时,或者你修改了paint函数或者修改了其他控件的paint函数等等...
      

  5.   

    up 等高手出现,LZ搞定记得出来说一声.
      

  6.   

    情况是这样的:1. 我第一次画的图写的字是可以清除的,
    2. 我用交互方式在其上添加了一些图形之后,就清不掉所有的图形。3. 我开始是利用Onpaint事件画的,后来改用button1click,结果也一样。
    4. 按大家的建议,改用FillRect来清,仍然不行。5. 我用的是Delphi7.
    6. 在调试程序是,有时360会报这个执行程序有病毒,且会杀掉它。
    7. 但我用360杀毒软件查全机,没有发现病毒。也就是说,是Delphi7编译出了病毒程序!不可思议极了!!!!
      

  7.   

    我甚至重装过Delphi7,也无用。
      

  8.   

    Onpaint事件画的?
    那是无法清除啊,因为Onpaint事件是频繁触发的,按钮只是一次执行要画,最好是在form放一个iamge,在那里一次性画,一次性清
      

  9.   


    我开始是利用Onpaint事件画的,后来改用button1click,且删去了Onpaint事件,结果也一样。我发现了问题:正在编译的程序,编译成功就立刻中了HEUR木马。
      

  10.   

    这一事情麻烦了!
    网上看到,用360或其他杀毒软件杀不掉HEUR木马。