Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.16;
Скачать: CL | DM;

Вниз

Использование анимации в Delphi приложении   Найти похожие ветки 

 
den_c   (2003-06-17 12:30) [0]

Нужно в программе во время каких-то действий отображать анимацию - что-то наподобие вращающегося глобуса в Internet Explorer или вращающегося увеличителя при поиски файлов. Чем лучше воспользоваться? В какую сторону копать? Воспользоваться стандартным компонентом ANIMATE или какими-нибудь компонентами для отображения GIF-анимации или еще чем... Что наименее ресурсоемкое? Кто сталкивался с этим - подскажите какое-нибудь готовое решение.


 
Denwill   (2003-06-17 13:58) [1]

Если устроит можешь попробовать TGifImage. www.torry.net


 
jel ©   (2003-06-17 14:05) [2]

Стандартный tAnimate прост, но безобразно мерцает. Можно порыться на torry и найти там кучу подходящих компонентов, а лучше всего - напиши сам - нужна-то всего пара строчек кода в onTimer.


 
den_c   (2003-06-17 22:07) [3]

На www.torry.net я залазил - там действительно много всего, аж глаза разбегаются. Вот только не знаю что выбрать... нет опыта использования.


 
Спрашивающий   (2003-06-18 01:59) [4]

Самый лучший вариант тебе уже подсказали-написать самому для
анимации пример которой ты привел нужно всего то около пяти
рисунков(Image) с разными вариантами поворота картинки и таймер меняющий эти картинки через определенный интервал, чтоб не быть голословным вот пример созданный за 1 минуту:
Положи на форму 3 Image, 2й и 3й из которых сделай Visible:=False;
и загрузи в них разные картинки а в 1ом увидишь ту самую анимацию.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
If Image1.Tag=1 Then
begin
Image1.Picture:=Image2.Picture;
Image1.Tag:=0;
end
Else
begin
Image1.Picture:=Image3.Picture;
Image1.Tag:=1;
end;
end;


 
Плохой человек   (2003-06-18 16:56) [5]

2 Спрашивающий:

Решение в принципе верное, но некрасиво реализовано. Ни в коем случае не надо создавать для каждого кадра по отдельному TImage. Это слишком грузный компонент. Для этого можно завести массивчик, например:


const N = 5;
var Frames: array [1..N] of TPicture;


Это решит многие проблемы с перебором кадров. Например, OnTimer можно будет реализовать вот так:


procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Tag := Timer1.Tag + 1;
If Timer1.Tag > N then Timer1.Tag = 1;
Image1.Picture := Frames[Timer1.Tag];
end;


Я ещё только не уверен, будет ли изображение перерисовываться атвоматически при таком выводе.

Вообще, проще наверное через компонент. Обычно так делается, то загружается в компонент одно изображение, составленное из ряда кадров, указывается количество кадров, а компонент уже сам копирует и показывает требуемый кадр.


 
Sliski Slimak   (2003-06-18 18:37) [6]

Можно Flash впихнуть в свою программу, а там уже возможности анимации неограничены.... Подробности на этом сайте, статья Delphi и Flash


 
Gozer   (2003-08-19 08:39) [7]

TshockWave от Flash"a не пробовал?
Мой Icq 270970908


 
lats ©   (2003-08-19 10:55) [8]

RXLib компонент RxGIFAnimator. Давно пользуюсь. Хорошая штука. И редакторов Gif предостаточно.



Страницы: 1 вся ветка

Текущий архив: 2003.12.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
1-52219
-= @ndrew =-
2003-12-05 10:07
2003.12.16
Проблема совместимости.....


1-52194
hfa
2003-12-05 13:36
2003.12.16
Тема касаеться QrExpr в отчете QuickRep


6-52320
John Smith
2003-10-20 11:14
2003.12.16
Работа с реестром Windows


14-52366
SergP
2003-11-21 20:52
2003.12.16
Коллекция юмора от Rouse_ ©. Куда подевалась?


14-52401
Knight
2003-11-20 23:40
2003.12.16
Regedit