Delphi 2007中的动画GIF和TDrawgrid

时间:2011-04-07 21:13:22

标签: delphi canvas delphi-2007 gif

我可以使用下面的代码绘制图像:

ACanvas.Draw(ARect.Left+16, ARect.Top+4, imgGIF.Picture.Graphic )

现在通过

加载imgGIF组件的gif
  GIF := TGifImage.Create;
  GIF.LoadFromFile('path\to\gif\processing.gif');
  GIF.Animate := True;
  imgGIF.Picture.Graphic.Assign(GIF);

我正在设置

GIFImageDefaultAnimate := True;
GIFImageDefaultTransparent := True;

环境是Delphi 2007,使用Delphi 2007 DVD附带的TGifImage。 这甚至可能吗?要在TDrawgrid单元格上显示动画GIF吗?

我不认为是因为canvas.draw只是绘制图像,而不是将组件插入到单元格中 - 所以据我所知,它只是在gif上绘制坚定的图像。

1 个答案:

答案 0 :(得分:3)

TGIFImage.Animate设置为True时,调用Canvas.Draw()将呈现动画的当前帧。当TGIFImage放置在TImage内时,TImage会使用TGraphic.OnChange事件在动画运行时自动重绘最新帧。要对TDrawGrid执行相同操作,您必须定期调用Canvas.Draw(),例如在其间隔设置为TGIFImage.FrameDelay属性值的计时器中。否则,请将GIF图像加载到单独的TGIFImage实例中,以便TDrawGrid使用,以便您可以使用TGraphic.OnChange事件。