Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Mihalish
40 / 8 / 2
Регистрация: 17.05.2011
Сообщений: 123
#1

GIF анимация - Delphi

10.11.2012, 23:54. Просмотров 26294. Ответов 18
Метки нет (Все метки)

Привет всем.
Подскажите, как в Delphi XE2 можно воспроизвести gif-анимацию. Советуют установить RxLib компоненты, но для XE2 их вроде нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2012, 23:54
Я подобрал для вас темы с готовыми решениями и ответами на вопрос GIF анимация (Delphi):

GIF анимация
Ребят ну помогите пожалуйста в архиве имеется Gif анимация это подобие того что...

gif анимация
Есть картинка gif анимированая. Можно но ли ее как нибуть вставить что бы она...

Gif анимация останавливается
Добрый день. При формировании отчета(SQL-запрос и вывод в Excel) производится...

Как установить DelphiX в Delphi XE3? И Анимация GIF
Как установить DelphiX в Delphi XE3? А так же: как сделать так, чтобы...

Gif в делфи
Пишу чат. Собираюсь сделать смайлы. Они в формате .gif как их добавить на...

GIF в Delphi
(Модуль GIFImage) установил. Но при попытке загрузить гифку Delphi просто...

18
angstrom
2470 / 1846 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
10.11.2012, 23:59 #2
Изучить GDI+, там есть поддержка анимированных gif-ов.
0
Mihalish
40 / 8 / 2
Регистрация: 17.05.2011
Сообщений: 123
11.11.2012, 00:02  [ТС] #3
Да мне нужно всего на форму кинуть одну картинку и чтобы она воспроизводилась.
0
angstrom
2470 / 1846 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
11.11.2012, 00:06 #4
Вот и скачай библиотеку gdiplus она и позволит это сделать.
0
DaMortum
243 / 146 / 31
Регистрация: 07.10.2012
Сообщений: 401
11.11.2012, 11:55 #5
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
unit Unit1;
 
interface
 
uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, GifImg, ExtCtrls;
 
type
    TForm1 = class(TForm)
      Image1: TImage;
      Timer1: TTimer;
      procedure Timer1Timer(Sender: TObject);
      procedure FormCreate(Sender: TObject);
    private
      Gif: TGifImage;
    public
      { Public declarations }
    end;
 
var
    Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
    Gif := TGifImage.Create;
    Gif.LoadFromFile('c:\01_A.gif');
    Gif.Animate := True;
    Gif.AnimateLoop := glEnabled;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
    Image1.Picture.Assign(Gif)
end;
 
end.
1
Mihalish
40 / 8 / 2
Регистрация: 17.05.2011
Сообщений: 123
11.11.2012, 15:41  [ТС] #6
Все решилось намного проще. Может кому пригодится.
1. Кидаем на форму компонент Image и грузим в него gif-картинку.
2. Скачиваем файл, который во вложении и распаковываем.
3. Распакованный pas файл кидаем в папку с проектом.
4. В uses дописываем
Delphi
1
2
uses
  GIFImg;
5. После implementation дописываем
Код
uses GIFImage;
ВСЕ!!!
P/S/ У меня на Delphi XE2 все работает!!!
3
Вложения
Тип файла: rar GIFImage.rar (51.9 Кб, 2637 просмотров)
DaMortum
243 / 146 / 31
Регистрация: 07.10.2012
Сообщений: 401
11.11.2012, 17:55 #7
Вместе с делфи поставляется модуль GifImg. Можно ничего не скачивать. Просто добавляешь в uses GIFImg и пользуешся. Пример я выше привёл.
0
angstrom
2470 / 1846 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
11.11.2012, 17:57 #8
Цитата Сообщение от Mihalish Посмотреть сообщение
... Может кому пригодится...
Большинство наверное и так знают, как грузить анимационные gif-ы. Существует несколько путей: RxLib, куча сторонних библиотек и, наконец, gdiplus.

Добавлено через 1 минуту
Цитата Сообщение от DaMortum Посмотреть сообщение
Вместе с делфи поставляется модуль GifImg. Можно ничего не скачивать. Просто добавляешь в uses GIFImg и пользуешся. Пример я выше привёл.
Не забывай, в "младших" версиях Дельфи его нет, а ими ещё многие пользуются.
0
DaMortum
243 / 146 / 31
Регистрация: 07.10.2012
Сообщений: 401
11.11.2012, 18:01 #9
Цитата Сообщение от angstrom Посмотреть сообщение
Большинство наверное и так знают, как грузить анимационные gif-ы. Существует несколько путей: RxLib, куча сторонних библиотек и, наконец, gdiplus.
Смысл скачивать и устанавливать какие-то дополнительные библиотеки, если надо одну картику на форму кинуть?
Цитата Сообщение от angstrom Посмотреть сообщение
Не забывай, в "младших" версиях Дельфи его нет, а ими ещё многие пользуются.
Ну разве что.
0
Mihalish
40 / 8 / 2
Регистрация: 17.05.2011
Сообщений: 123
11.11.2012, 19:47  [ТС] #10
Цитата Сообщение от DaMortum Посмотреть сообщение
Вместе с делфи поставляется модуль GifImg. Можно ничего не скачивать. Просто добавляешь в uses GIFImg и пользуешся. Пример я выше привёл.
Попробовал, не то что надо, картинка дергается, нужно под нее подстраивать интервал таймера. В моем примере всего 2 строчки кода, а тут намного больше.
0
Mihalish
40 / 8 / 2
Регистрация: 17.05.2011
Сообщений: 123
11.11.2012, 19:52  [ТС] #11
Цитата Сообщение от DaMortum Посмотреть сообщение
Вместе с делфи поставляется модуль GifImg. Можно ничего не скачивать. Просто добавляешь в uses GIFImg и пользуешся. Пример я выше привёл.
Попробовал, не то что надо, картинка дергается, нужно под нее подстраивать интервал таймера. В моем примере всего 2 строчки кода, а тут намного больше.
0
Вложения
Тип файла: rar loader.rar (92.7 Кб, 403 просмотров)
DaMortum
243 / 146 / 31
Регистрация: 07.10.2012
Сообщений: 401
12.11.2012, 13:40 #12
Цитата Сообщение от Mihalish Посмотреть сообщение
Попробовал, не то что надо, картинка дергается, нужно под нее подстраивать интервал таймера. В моем примере всего 2 строчки кода, а тут намного больше.
Я поставил таймер потому что, для некоторых файлов, зацикливание анимации не работает. Для конкретно твоего файла работает и без таймера.
И тоже две строчки.
Delphi
1
2
GIFImageDefaultAnimate := True;
Image1.Picture.LoadFromFile('d:\01_A.gif');
Дельфийский модуль - это и есть тот модуль что ты прикрепил, только адаптированный. Сам автор его отдал.
0
Mihalish
40 / 8 / 2
Регистрация: 17.05.2011
Сообщений: 123
12.11.2012, 17:20  [ТС] #13
Цитата Сообщение от DaMortum Посмотреть сообщение
Я поставил таймер потому что, для некоторых файлов, зацикливание анимации не работает. Для конкретно твоего файла работает и без таймера.
И тоже две строчки.
Delphi
1
2
GIFImageDefaultAnimate := True;
Image1.Picture.LoadFromFile('d:\01_A.gif');
Дельфийский модуль - это и есть тот модуль что ты прикрепил, только адаптированный. Сам автор его отдал.
Почему когда gif гружу в Image то gif не анимируется а стоит на месте, если же указать путь к gif как в твоем примере то все работает. Привязка gif к конкретному пути ведь совсем не нужна, очень неудобно!
0
DaMortum
243 / 146 / 31
Регистрация: 07.10.2012
Сообщений: 401
12.11.2012, 17:29 #14
Вместо конкретного пути можно переменную вставить. А дальше хоть через OpenDialog, хоть относительный путь указывать.
0
Mihalish
40 / 8 / 2
Регистрация: 17.05.2011
Сообщений: 123
12.11.2012, 17:33  [ТС] #15
Так всеже почему когда gif гружу в Image то gif не анимируется, или это особенность модуля GifImg?
0
DaMortum
243 / 146 / 31
Регистрация: 07.10.2012
Сообщений: 401
12.11.2012, 17:43 #16
Цитата Сообщение от Mihalish Посмотреть сообщение
Так всеже почему когда gif гружу в Image то gif не анимируется, или это особенность модуля GifImg?
Загружаешь в дизайнере?
Насколько я понял почитав блог автора, для включения анимации нужно выставить в True глобальную переменную GIFImageDefaultAnimate, а затем загружать картинку в Image. Если загрузить во время дизайна, видимо, порядок нарушается.

Кстати, если эти две строчки поменять местами , тоже анимации не будет.
0
Mihalish
40 / 8 / 2
Регистрация: 17.05.2011
Сообщений: 123
12.11.2012, 17:49  [ТС] #17
Да, картинку гружу в дизайнере, а GIFImageDefaultAnimate := True прописываю в FormCreate.
И не работает gif-ка.
0
DaMortum
243 / 146 / 31
Регистрация: 07.10.2012
Сообщений: 401
12.11.2012, 17:54 #18
Цитата Сообщение от Mihalish Посмотреть сообщение
Да, картинку гружу в дизайнере, а GIFImageDefaultAnimate := True прописываю в FormCreate.
И не работает gif-ка.
Если уж так надо, можешь в dpr файле сделать присвоение
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program Project1;
 
uses
  GifImg,
  Forms,
  Unit1 in 'Unit1.pas' {Form1};
 
{$R *.res}
 
begin
  GIFImageDefaultAnimate := True;
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
1
Mihalish
40 / 8 / 2
Регистрация: 17.05.2011
Сообщений: 123
12.11.2012, 18:11  [ТС] #19
Не, опять куча строк кода, остановлюсь пожалуй на своем варианте, а то это все как-то громоздко.
0
12.11.2012, 18:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2012, 18:11
Привет! Вот еще темы с решениями:

GIF в Delphi XE4
Сколько не искал, так ничего и не нашел.Изображения формата GIF -не смотря на...

Delphi xe7 и gif
Люди помогите вставить в программу gif-ку :-[

Ошибка при работе с Gif
Хочу закинуть гифку на форму. Предварительно разложил её на .bmp . Вылазит вот...

Обнуление одиночной анимации (gif)
Имеется gif анимация (выезд/заезд бар-меню), я сделал ее одиночной, ибо если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru