Delphi 2007中的动画GIF和TDrawgrid

Delphi 2007中的动画GIF和TDrawgrid,delphi,canvas,delphi-2007,gif,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); 我正在准备 GIFIm

我能够使用如下代码绘制图像:

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;
环境是Delphi2007,使用Delphi2007 DVD附带的TGifImage。 这可能吗?要在TDrawgrid单元格上显示动画GIF


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

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

您是对的。当然,您可以在计时器中调用
Draw
,并手动绘制动画中的每一帧。