Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 483

/ вопрос открыт /

Здравствуйте увожаемые эксперты!
У меня к вам такой вопрос?
Снизу написан код вывода аннимации(Bitmap)
на форму.
Как мне сделать так, чтобы выводилась
не одна аннимация на форме, а две или лучше три.
Но так чтобы поле вывода было в разных местах
на форме, чтобы я указал сам координаты каждого
поля отдельно, т.е одна допустим в правом верхнем угпу,
другая в левом верхнем углу, а третья в левом нижнем,
и все три должны работать одновременно.
Если это возможно, то огромное вам спасибо за помощь.

Может я сформулировл вопрос не сильно понятно,
ещё раз в кратче:
Мне нужно чтобы три разных аннимации были на форме
одновременно.
И ещё вопрос? Можно Canvas формы загрузить рисунком JPG.
Ещё раз спасибо.

Приложение:
  1. const
  2.  
  3.  
  4. var
  5.  
  6.  
  7.  
  8.  
  9.  
  10. procedure TForm1.FormCreate(Sender: TObject);
  11. begin
  12.  
  13.  
  14. WKadr := Round(Film.Width/N_Kadr);
  15. HKadr := Film.Height;
  16.  
  17.  
  18. Ckadr:=0;
  19.  
  20.  
  21. end;
  22.  
  23. procedure TForm1.Timer1Timer(Sender: TObject);
  24. begin
  25.  
  26. RectKadr:=Bounds(WKadr*CKadr,0,WKadr,HKadr);
  27.  
  28. Form1.Canvas.CopyRect(RectScr,Film.Canvas,RectKadr);
  29.  
  30. CKadr := CKadr+1;
  31. if CKadr = N_KADR
  32. then CKadr:=0;
  33. end;
  34.  
  35. end.


Толков Геннадий Викторович Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Толков Геннадий Викторович (статус: Посетитель)
Вопрос отправлен: 8 апреля 2008, 00:10
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: min@y™

Привет!
Написал я тебе пример (см. в прицепе).
в примере - класс TAnimation, который всё делает как надо.
Скомпили исходник, посмотри, как работает. Потом глянь код и всё поймёшь.
К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 8 апреля 2008, 09:32
Оценка за ответ: 5

Ответ #2. Отвечает эксперт: Feniks

Здравствуйте, Толков Геннадий Викторович!
Делайте все через потоки. Эту тему уже обсуждали. Не буду повторяться. Поищите поиском на портале потоки TThread. По потокам были хорошие примеры. Еще в самом Делфи есть пример по алгоритмам сортировке. Он построен на потоках. Кажется назывался Tthreads.
Работа с JPEG тоже неоднократно рассматривалась. Например, вопрос #1434.
Желаю удачи.

Ответ отправил: Feniks (статус: Бакалавр)
Время отправки: 9 апреля 2008, 15:09
Оценка за ответ: 4


Мини-форум вопроса

Всего сообщений: 3; последнее сообщение — 9 апреля 2008, 08:20; участников в обсуждении: 3.
Плюмаж

Плюмаж (статус: Посетитель), 8 апреля 2008, 01:34 [#1]:

Можно сделать отдельный модуль, в котором описан класс анимации.
Например, каждый экземпляр класса имеет свойство ИмяФайла и ЧислоКадров, Форма, КоординатыНаФорме и т.п..

При инициализации модуля, создайте свой собственный таймер, у которого на OnTimer будет вызов для каждого экземпляра класса Анимация процедуры показа следующего кадра.

Каждый экземпляр Анимации, при создании, регистрируется в списке (который таймер и просматривает), а при уничтожении - удаляется из списка.

P.S. Впрочем, подождите пару дней - более опытные эксперты подскажут Вам наиболее простое решение.
Аксион

Аксион (статус: 4-ый класс), 8 апреля 2008, 13:49 [#2]:

min@y™ а как можно сделать что бы фон в анимации был прозрачным (ну и полупрозрачным) ?
min@y™

min@y™ (статус: Доктор наук), 9 апреля 2008, 08:20 [#3]:

Цитата:


а как можно сделать что бы фон в анимации был прозрачным


На DelphiWorld дофига примеров. Заюзай там поиск или могу тебе прислать по мылу примеры.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 октября 2017, 03:44
Выполнено за 0.04 сек.
Рейтинг@Mail.ru