我在timer(定时100ms)中用image控件的canas属性绘制图形时(如,画一条不断延长的线条),image控件的背景总是闪动,请问这是为什么?
  谢谢!

解决方案 »

  1.   

    Image1.Parent.DoubleBuffered := True;
      

  2.   

    双缓冲啦 -_-#好好看看DirectX中对双缓冲技术的说明....
      

  3.   

    将IMAGE放入PANEL中也可解决此类问题,试试吧?
      

  4.   

    我试了一下用PANEL,不行 :_)
      

  5.   

    Image1.Canvas.Brush.Style := bsClear;
      

  6.   

    方法1。缓冲就是你将要绘制的下一个图形(比如这里就是下一根线,)放到一个自定义的内寸里,比如你设定一个bitmap,该bitmap的内容就是你要绘制的下一条线,当每画一条线时,你将上一个bitmap中的内容绘制到窗体上,同时将下一个要画的线存到bitmap中.反复如上即可.
    方法2.使用delphi7.0,delphi7.0对图形方面做了大量优化,(我怀疑它本身就使用了缓冲技术)因此即使你不使用缓冲,大部分图形在绘制时也绝不会闪烁。你这画线对delphi 7.0是小菜一碟。