Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2011, 18:01   #1
werrey
Форумчанин
 
Регистрация: 01.02.2011
Сообщений: 105
По умолчанию Gif анимация в TImage.

Здравствуйте.

Подскажите пожалуйста, как вывести в компоненте Image Gif анимацию.
В дельфи хе картинка gif загружается, но программа не компилируется, выдаёт ошибку.

Перечитал много, но дельного однозначного ответа так и не нашел!

Заранее благодарю!
werrey вне форума Ответить с цитированием
Старый 25.05.2011, 19:48   #2
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

Этот компонент не поддерживает анимацию. Если только вы сами по таймеру не начнете его анимировать, для этого нужно просто почитать спецификацию. Либо используй готовый компонент RxGifAnimator из библиотеки RxLib. Найти ее в инете не сложно.
Могу лишь пнуть в нужном направлении (ну или как получится)
Swarog вне форума Ответить с цитированием
Старый 25.05.2011, 20:04   #3
werrey
Форумчанин
 
Регистрация: 01.02.2011
Сообщений: 105
По умолчанию

Цитата:
Сообщение от Swarog Посмотреть сообщение
Этот компонент не поддерживает анимацию. Если только вы сами по таймеру не начнете его анимировать, для этого нужно просто почитать спецификацию. Либо используй готовый компонент RxGifAnimator из библиотеки RxLib. Найти ее в инете не сложно.
А как по таймеру анимировать,не подскажите?
RxGifAnimator у меня тоже есть, правда не компилируется почему-то программа, анимация на форме перед компиляцией работает.
А вообще хотелось бы в один компонент подгружать файлы(в зависимости от событий), и анимированые-Gif, и обычные-PNG, RxGifAnimator вроде другие форматы и не загружает.
werrey вне форума Ответить с цитированием
Старый 25.05.2011, 20:21   #4
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

Цитата:
А как по таймеру анимировать,не подскажите?
Саздете массив кадров и через определенные промежутки времени (по таймеру) их меняете, вариант разбора gif не самый быстрый, наборы Png не оптимально по размерам но осуществимо, для загрузки вроде есть специальный компонент либо использовать GDI+ что бы прозрачность была
Могу лишь пнуть в нужном направлении (ну или как получится)
Swarog вне форума Ответить с цитированием
Старый 25.05.2011, 21:25   #5
werrey
Форумчанин
 
Регистрация: 01.02.2011
Сообщений: 105
По умолчанию

Вот нашел такой вариант, почему он не работает?

Код:
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('1.gif');
Gif.Animate := True;
Gif.AnimateLoop := glEnabled;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Image1.Picture.Assign(Gif);
end;


end.
werrey вне форума Ответить с цитированием
Старый 25.05.2011, 21:38   #6
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

а на что ругается?
Могу лишь пнуть в нужном направлении (ну или как получится)
Swarog вне форума Ответить с цитированием
Старый 25.05.2011, 21:45   #7
werrey
Форумчанин
 
Регистрация: 01.02.2011
Сообщений: 105
По умолчанию

Цитата:
Сообщение от Swarog Посмотреть сообщение
а на что ругается?
Он не ругается тут, просто пустую форму компилирует,пишет что нет такого файла, хотя он есть(((

Хоть бы нормальный пример рассмотреть.
werrey вне форума Ответить с цитированием
Старый 25.05.2011, 22:03   #8
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

может в Gif тоже есть что-то типа Image1.Picture и надо писать не
Image1.Picture.Assign(Gif);
а
Image1.Picture.Assign(Gif.Picture); ?

да, предположение, а вдруг поможет?
xrob вне форума Ответить с цитированием
Старый 25.05.2011, 22:17   #9
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

еще одно предположение у gif должен быть метод paint котоому передается канва на которой нужно рисоваться квадрат в кторый рисовать и опции
Могу лишь пнуть в нужном направлении (ну или как получится)
Swarog вне форума Ответить с цитированием
Старый 25.05.2011, 22:31   #10
werrey
Форумчанин
 
Регистрация: 01.02.2011
Сообщений: 105
По умолчанию

Цитата:
Сообщение от Swarog Посмотреть сообщение
еще одно предположение у gif должен быть метод paint котоому передается канва на которой нужно рисоваться квадрат в кторый рисовать и опции
Ну Вы и загрузили))), издеваетесь что-ли, мне нужно просто анимацию формата Gif вывести на форму, лучше конечно в image, да пока вообще никак не получается.
werrey вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анимация GIF Яр|/||< (^_^) Компоненты Delphi 19 18.04.2017 04:03
GIF анимация Mr_skiner Общие вопросы Delphi 1 29.04.2011 01:45
GDI+ анимация Gif flug Общие вопросы Delphi 4 16.07.2010 09:18
GIF анимация Orodret Общие вопросы C/C++ 2 24.04.2009 20:07