修改过的适合Delphi7的GifImage程序(经多线程测试)
原GifImage在多线程运行时,经常产生异常。因此特别做了特殊的判断和处理。 在调用时,需要特别注意。 var gif: TGifImage; image: TImage; aFileName: String; // 图片文件名称 begin .... gif := TGIFImage.Create; try gif.LoadFromFile(aFileName); image.Picture.Assign(gif.Bitmap); gif.AnimationSpeed := 200; gif.Animate := true; // 设置为动画,这样才能有动画效果 // 需要加上这个,否则,会出现Out of System Resource if image.Picture.Graphic.Palette <> 0 then begin deleteObject(image.Picture.Graphic.Palette); image.Picture.Graphic.Palette := 0; end; // 注意:这个是关键(没有用Assign),新产生的对象拷贝了原来的Gif信息 image.Picture.Graphic := gif; finally if Assigned(gif) then FreeAndNil(gif); // 注意:释放了gif的对象资源 end;