Текущий архив: 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