Как использовать Animated Gif в форме Delphi - PullRequest
22 голосов
/ 06 марта 2012

Я думаю, что нет никакой встроенной поддержки GIF-анимированных изображений.

Как лучше? любой бесплатный компонент, который позволяет это? Я думал об использовании TImage и ImageList + Timer, но мне нужно экспортировать каждый кадр gif в отдельный файл bmp.

Ответы [ 3 ]

46 голосов
/ 06 марта 2012

В современном Delphi все довольно просто.Это все встроено. Перетащите TImage на форму и загрузите анимированный GIF в свойство Picture.Затем запустите анимацию с помощью свойства Animate:

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

Вы можете управлять анимацией с помощью AnimateLoop и AnimateSpeed.Должно быть довольно легко догадаться, как снова отключить анимацию!

Теперь, поскольку вы используете Delphi 7, у вас нет встроенного компонента TGIFImage.Однако вы можете скачать код с сайта Финна Толдерлунда (вам нужна последняя версия TGIFImage).С этой версией компонента приведенный выше код должен работать нормально, хотя я лично не использовал его, поскольку несколько лет назад я перенес его с D6 на D2010.

Все эти различные TGIFImage коды на самом деле являются просто версиямиэтого же компонента, первоначально написанного Андерсом Меландером и в 2007 году подаренного Embarcadero для включения в Delphi.

8 голосов
/ 28 сентября 2013

это просто загрузка анимированного 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;

stackoverflow помог мне, и поэтому мой маленький кусочеквзамен:)

5 голосов
/ 06 марта 2012

Искал в Google 'Delphi Gif'. Придумал

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

, теперь часть Delphi

...