2012-03-05 57 views
19

Creo que no hay soporte nativo para imágenes animadas gif.Cómo usar Gif animado en forma delphi

¿Cuál es la mejor manera? cualquier componente gratuito que permita eso? Estaba pensando en usar un TImage y un ImageList + Timer, pero necesito exportar cada fotograma del gif a un archivo bmp separado.

Respuesta

42

Es bastante simple en Delphi moderna. Está todo incluido. Coloque un TImage en el formulario y cargue el GIF animado en la propiedad de Imagen. A continuación, iniciar la animación por medio de la propiedad Animate:

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

Se puede controlar la animación con AnimateLoop y AnimateSpeed. ¡Debería ser muy fácil adivinar cómo desactivar nuevamente la animación!

Ahora, ya que está utilizando Delphi 7, no tiene el componente TGIFImage incorporado. Sin embargo, puede descargar el código del sitio web Finn Tolderlund's (desea la última versión de TGIFImage). Con esta versión del componente, el código anterior debería funcionar bien, aunque personalmente no lo he usado desde que hice el portado de D6 a D2010 hace unos años.

Todos estos varios códigos TGIFImage son en realidad versiones del mismo componente, originalmente escritos por Anders Melander y, en 2007, donados a Embarcadero para su inclusión en Delphi.

+0

Cuidado con la mierda- show llamado Jedi VCL que evitará cargar GIF animados en un TImage si está registrado. –

6

Esto es simplemente cargar un gif animado y no hacer una

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 me ha ayudado y por lo que mi poco a cambio :)

+1

DoubleBuffered: = Verdadero suele ser un mal movimiento –