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
,并手动绘制动画中的每一帧。