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