在image上拖动图片,后面图片总是闪烁,大家有什么好方法吗?
我的拖动代码如下:
mousemove中
 Timage(sender).Cursor:=crHandPoint;
  if moving then
  begin
    Repaint;
    Canvas.Rectangle(Timage(sender).Left+(x-oldpoint.X),
                     Timage(sender).Top +(y-oldpoint.y),
                     Timage(sender).Left+(x-oldpoint.X)+Timage(sender).Width,
                     Timage(sender).Top +(y-oldpoint.y)+Timage(sender).Height);
  end;
mousedown中
  oldpoint.X:=x;
  oldpoint.Y:=y;
  Canvas.Rectangle(Timage(sender).Left,Timage(sender).Top,Timage(sender).Left+Timage(sender).Width,Timage(sender).Top+Timage(sender).Height);
  moving:=True;
mouseup中
    moving:=False;
  Timage(sender).Left:=Timage(sender).Left+(x-oldpoint.X);
  Timage(sender).Top:=Timage(sender).Top+(y-oldpoint.y);
大家有什么好方法?可以让后面的图片不闪烁呀?

解决方案 »

  1.   

    to heluqing(鉴之小河) ,这个属性是什么意思呀?
    用在那个图片上?是背景图片还是拖动图片呀
      

  2.   

    背景图片,它是用来增加他的parent的buffer的,一般情况下就可以解决闪烁的问题...
      

  3.   

    to  heluqing(鉴之小河) 
    我用了,image1.DoubleBuffered:=True;这句.
    可是编译器显示undeclared identity doublebuffered可是用form就可以呀?这是
    怎么回事呀? 谢谢你
      

  4.   

    哦,form上有这个属性,image上可能没有,没测试,呵呵
      

  5.   

    to heluqing(鉴之小河) 
    我把属性用在form上了,效果还不错, heluqing(鉴之小河)我已经把分加给你了,谢谢.呵呵
      

  6.   

    heluqing(鉴之小河) 
    顺便问一下,这样会不会影响程序执行的速度呀?对系统有什么影响?