如何以delphi形式使用动画Gif

Vit*_*.us 22 delphi animation gif delphi-7 animated-gif

我认为没有原生支持gif动画图像.

最好的方法是怎样的?任何允许的免费组件?我在考虑使用TImage和ImageList + Timer,但是我需要将gif的每个帧导出到一个单独的bmp文件中.

Dav*_*nan 49

在现代Delphi中它非常简单.它都是内置的.将a TImage放入表单并将动画GIF加载到Picture属性中.然后,通过Animate属性启动动画:

(Image1.Picture.Graphic as TGIFImage).Animate := True;
Run Code Online (Sandbox Code Playgroud)

您可以使用AnimateLoop和控制动画AnimateSpeed.猜测如何再次关闭动画应该很容易!

现在,由于您使用的是Delphi 7,因此您没有TGIFImage内置组件.但是,您可以从Finn Tolderlund的网站下载代码(您需要最新版本TGIFImage).使用这个版本的组件,上面的代码应该可以正常工作,虽然我个人没有使用它,因为几年前我从D6移植到D2010.

所有这些TGIFImage代码实际上只是同一组件的版本,最初由Anders Melander编写,并于2007年捐赠给Embarcadero以包含在Delphi中.

  • 请注意称为Jedi VCL的狗屎表演,如果已经注册,它将阻止将动画GIF加载到TImage中. (3认同)

小智 8

这只是加载动画gif而不是制作一个

procedure TForm1.FormCreate(Sender: TObject);

begin

  ( Image1.Picture.Graphic as TGIFImage ).Animate := True;// gets it goin'

  ( Image1.Picture.Graphic as TGIFImage ).AnimationSpeed:= 500;// adjust your speed

  Form1.DoubleBuffered := True;// stops flickering

end;
Run Code Online (Sandbox Code Playgroud)

stackoverflow帮助了我,所以我的一点点回报:)

  • DoubleBuffered := True 通常是一个糟糕的举动 (2认同)

Tob*_*len 5

搜索谷歌的'Delphi Gif'想出了这个

http://melander.dk/delphi/gifimage/

现在是Delphi的一部分