在image控件上使用canvas功能时,需要进行多次画图操作,这时我用到了刷新image控件,但会出现闪烁状态,有没有办法解决这种闪烁的状态。

解决方案 »

  1.   

    procedure   TForm1.FormCreate(Sender:   TObject);   
      begin   
          DoubleBuffered   :=   True;   
      end;
      

  2.   

    DoubleBuffered   :=   True;对这种情况作用不大
      

  3.   

    拦截Image的擦除背景的消息WM_ERASEBKGND,直接跳过。可能会有点用
      

  4.   

    哈,我也遇到过类似问题。最后解决了:
    1.确定你的Canvas控件的父控件,即如果你的Canvas控件是Image1,它在Panel1上,他的
    父控件为Panel1,如果在Scrollbox1上,他的父控件为Scrollbox1;
    2.设置 父控件.doublebuffered:=true;只要将该控件放到panel上就行了。
      

  5.   

    你直接画在Img.Canvas上?可以换个地方,画在 Img.Picture.bmp.Canvas上。当然事先得装一个空白bmp