Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use Animated Gif in a delphi form

I think theres no native support to gif animated images.

How is the best way? any free component that allow that? I was thinking in using a TImage and a ImageList + Timer, but I need to export each frame of the gif to a separated bmp file.

like image 429
Vitim.us Avatar asked Mar 05 '12 20:03

Vitim.us


People also ask

How do you add GIFs to Delphi?

It's pretty simple in modern Delphi. It's all built in. Drop a TImage onto the form and load the animated GIF into the Picture property.

Can you use a GIF as an animation in unity?

1 Answer. Show activity on this post. Unity not support Gif. Save individual frames and make an array of textures.


2 Answers

It's pretty simple in modern Delphi. It's all built in. Drop a TImage onto the form and load the animated GIF into the Picture property. Then, start the animation by means of the Animate property:

(Image1.Picture.Graphic as TGIFImage).Animate := True; 

You can control the animation with AnimateLoop and AnimateSpeed. It should be pretty easy to guess how to switch the animation off again!

Now, since you are using Delphi 7, you don't have the TGIFImage component built-in. However, you can download the code from Finn Tolderlund's website (you want the latest version of TGIFImage). With this version of the component, the code above should work fine, although I personally have not used it since I ported from D6 to D2010 a few years back.

All these various TGIFImage codes are really just versions of the same component, originally written by Anders Melander and, in 2007, donated to Embarcadero for inclusion in Delphi.

like image 132
David Heffernan Avatar answered Sep 23 '22 22:09

David Heffernan


this is simply loading an animated gif and not making one

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; 

stackoverflow has helped me and so my little bit in return :)

like image 45
steve Avatar answered Sep 24 '22 22:09

steve