2012-03-05 3 views
19

Я думаю, что у них нет встроенной поддержки gif-анимированных изображений.Как использовать Анимированный Gif в форме delphi

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

ответ

42

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

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

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

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

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

+0

Остерегайтесь shit- show под названием Jedi VCL, который предотвратит загрузку анимированных GIF-файлов в TImage, если он зарегистрирован. –

6

это просто загружается анимированный 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 помог мне и так моя немного в ответ :)

+1

DoubleBuffered: = True, как правило, плохой ход –

Смежные вопросы