我可以使用下面的代码绘制图像:
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上绘制坚定的图像。
答案 0 :(得分:3)
当TGIFImage.Animate
设置为True时,调用Canvas.Draw()
将呈现动画的当前帧。当TGIFImage
放置在TImage
内时,TImage
会使用TGraphic.OnChange
事件在动画运行时自动重绘最新帧。要对TDrawGrid
执行相同操作,您必须定期调用Canvas.Draw()
,例如在其间隔设置为TGIFImage.FrameDelay
属性值的计时器中。否则,请将GIF图像加载到单独的TGIFImage
实例中,以便TDrawGrid
使用,以便您可以使用TGraphic.OnChange
事件。