我的程序要多次加载gif动画,然后释放,再加载。经过多次这样之后,动画就显示不出来了。不知是什么原因,有人遇到和我类似的问题吗?如果解决不了这个问题,我想自己做一个线程来显示动画,这个线程一直运行,直到程序退出。我初步用timer一帧一帧去显示,可以显示动画,但是透明好像有问题,有的动画很正常,有的有问题。

解决方案 »

  1.   

    看这里解决:
    http://www.cnblogs.com/del/archive/2008/07/16/1244232.html
      

  2.   

    多谢了,JPEXE!实际上,我用的是lazarus,不是delphi。您给的例子非常好,可是用了GDI+。我不知道lazarus下怎么下载安装GDI+.再研究研究。
      

  3.   

    呵呵,没有高人吗?
    gifimage.pas单元里是这样的FImage.Images[ActiveImage].Draw(FCanvas, FRect, (goTransparent in FDrawOptions),(goTile in FDrawOptions)); 我的Timer里这样(timer1.Tag用来记录帧编号):
    gif.Images[timer1.Tag].Draw(Canvas,rect(0,0,gif.width,gif.height),(goTransparent in gif.DrawOptions),(goTile in gif.DrawOptions));将动画直接显示到窗体的Canvas上,有的动画显示很正常,有的存在透明的问题。
      

  4.   

    呵呵,我刚开始注册使用CSDN,还没顾得上挣分,实在惭愧!不过,我仔细看了看GifImage.pas单元里的内容,问题已经解决了。谢谢大家。
      

  5.   

    GDI+
    http://www.cnblogs.com/del/archive/2008/07/16/1244232.html
    的例子用D2010  GDI+1.2编译无法通过