C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: gif анимация в CodeGear RAD Studio 2009, запуск/остановка, загрузка [РЕШЕНО]  (Прочитано 3728 раз)
Nikita
Участник


Сказали спасибо: +6/-1
Offline

Сообщений: 476


gif анимация в CodeGear RAD Studio 2009, запуск/остановка, загрузка [РЕШЕНО]
« : 27 Октябрь 2011, 10:33:09 »

Приветствую всех.

Подскажите каким образом в среде разработки CodeGear RAD Studio 2009 запустить и остановить gif анимацию.

На форму анимация помещается, но она статична.
« Последнее редактирование: 27 Октябрь 2011, 17:46:10 от Nikita » Записан
volvo877
Глобальный модератор


Сказали спасибо: +736/-1
Offline

Сообщений: 891


Re: gif анимация в CodeGear RAD Studio 2009
« Ответ #1 : 27 Октябрь 2011, 10:52:56 »

Я ж вот тут показывал: https://cbuilder.ru/index.php/topic,7798.msg49436.html#msg49436
Записан
Nikita
Участник


Сказали спасибо: +6/-1
Offline

Сообщений: 476


Re: gif анимация в CodeGear RAD Studio 2009
« Ответ #2 : 27 Октябрь 2011, 11:48:43 »

с этим кодом:
Код
gif = new TGIFImage();
gif->LoadFromFile("my_gif.gif");
gif->Animate = true;
Image1->Picture->Graphic = gif;
картинка пришла в движение.

Еще вопросы:
1. Каким образом картинку не грузить из файла а взять из ImageList (например) (в общем чтобы картинку засунуть в проект еще в процессе создания а не в процессе работы проекта)
   gif->ImageList[0]; - не работает
2. Каким образом остановить анимацию на gif (не через Visible)
   gif->Animate = false; - не работает
   gif->AnimationSpeed=0; - не работает
    gif->SuspendDraw(); - не работает
Записан
POV
Участник


Сказали спасибо: +107/-7
Offline

Сообщений: 640


Re: gif анимация в CodeGear RAD Studio 2009
« Ответ #3 : 27 Октябрь 2011, 12:46:01 »

Имаджлист маленькие картинки хранит. Запихай лучше в ресурс.
Записан
Nikita
Участник


Сказали спасибо: +6/-1
Offline

Сообщений: 476


Re: gif анимация в CodeGear RAD Studio 2009
« Ответ #4 : 27 Октябрь 2011, 13:00:26 »

Цитата: POV от 27 Октябрь 2011, 12:46:01
Имаджлист маленькие картинки хранит. Запихай лучше в ресурс.

В ресурс засунул. А как же ее теперь извлечь? LoadFromResourceName нет такого в gif классе. 
Записан
volvo877
Глобальный модератор


Сказали спасибо: +736/-1
Offline

Сообщений: 891


Re: gif анимация в CodeGear RAD Studio 2009
« Ответ #5 : 27 Октябрь 2011, 13:35:58 »

А не надо, читай из ресурсов в TResourceStream, а оттуда уже LoadFromStream GIF-овский прекрасно заберет изображение...
Записан
Nikita
Участник


Сказали спасибо: +6/-1
Offline

Сообщений: 476


Re: gif анимация в CodeGear RAD Studio 2009
« Ответ #6 : 27 Октябрь 2011, 16:57:25 »

Цитата: volvo877 от 27 Октябрь 2011, 13:35:58
А не надо, читай из ресурсов в TResourceStream, а оттуда уже LoadFromStream GIF-овский прекрасно заберет изображение...

Код
TResourceStream *gifAnimate=new TResourceStream(0,AnsiString("GifImage_1"),L"RT_RCDATA");
и так тоже
TResourceStream *gifAnimate=new TResourceStream(0,L"GifImage_1",L"RT_RCDATA");

пишет что ресурс не найден  
« Последнее редактирование: 27 Октябрь 2011, 17:06:05 от Nikita » Записан
Nikita
Участник


Сказали спасибо: +6/-1
Offline

Сообщений: 476


Re: gif анимация в CodeGear RAD Studio 2009
« Ответ #7 : 27 Октябрь 2011, 17:13:32 »

Решил. Нашел на другом форуме. Нужно так:
Код
TGIFImage *gif;
...
TResourceStream *gifAnimate=new TResourceStream(0,"GifImage_1",(System::WideChar*)RT_RCDATA);
gif->LoadFromStream(gifAnimate);
...

Вопрос о том Каким образом остановить анимацию на gif (не через Visible)? Остается актуальным.
« Последнее редактирование: 27 Октябрь 2011, 17:26:00 от Nikita » Записан
volvo877
Глобальный модератор


Сказали спасибо: +736/-1
Offline

Сообщений: 891


Re: gif анимация в CodeGear RAD Studio 2009
« Ответ #8 : 27 Октябрь 2011, 17:27:36 »

Цитировать
Каким образом остановить анимацию на gif (не через Visible)?
У меня вот так останавливается/запускается анимация:
Код
((TGIFImage*)Image1->Picture->Graphic)->Animate = false; // true

Цитировать
Нужно так:
Так не нужно, а так делают, когда вот так не срабатывает по какой-то причине:
Код
TResourceStream *gifAnimate = new TResourceStream((int)HInstance, "GifImage_1", L"RT_RCDATA");
У меня только что отработало безо всяких проблем...
Записан
Nikita
Участник


Сказали спасибо: +6/-1
Offline

Сообщений: 476


Re: gif анимация в CodeGear RAD Studio 2009
« Ответ #9 : 27 Октябрь 2011, 17:45:02 »

Цитата: volvo877 от 27 Октябрь 2011, 17:27:36
У меня вот так останавливается/запускается анимация:
Код
((TGIFImage*)Image1->Picture->Graphic)->Animate = false; // true

Спасибо, заработало как надо.

Цитировать
Так не нужно, а так делают, когда вот так не срабатывает по какой-то причине:
Код
TResourceStream *gifAnimate = new TResourceStream((int)HInstance, "GifImage_1", L"RT_RCDATA");
У меня только что отработало безо всяких проблем...
Я так тоже пробовал, но у меня не сработало, пишет что ресурс не найден.
И так тоже пробовал:
Код
TResourceStream *gifAnimate = new TResourceStream(0, "GifImage_1", L"RT_RCDATA");
Опять же, ресурс не найден.
Вот тут: http://forum.vingrad.ru/forum/act-ST/f-94/t-319255.html ребята писали что это от настроек проекта зависит. Я не стал извращаться с настройками проекта из-за одной функции и сделал так как было предложено на том форуме. Но всё равно спасибо.  
« Последнее редактирование: 27 Октябрь 2011, 19:37:22 от Nikita » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.235 секунд. Запросов: 22.