Просмотр мультипликации
Теперь рассмотрим, как можно реализовать вывод в диалоговом окне программы простого "мультика", подобного тому, который можно видеть в диалоговом окне Установка связи при подключении к Internet.
Эффект бегущего между телефоном и компьютером красного квадратика достигается за счет того, что в диалоговое окно выводятся сменяющие друг друга картинки.
Кадры мультика обычно находятся в одном файле или в одном ресурсе. Перед началом работы программы они загружаются в буфер, в качестве которого удобно использовать объект типа TBitMap. Задача процедуры, реализующей вывод мультика, состоит в том, чтобы выделить очередной кадр и вывести его в нужное место формы.
Вывести кадр на поверхность формы можно применением метода copyRect к свойству canvas этой формы. Метод CopyRect копирует прямоугольную область одной графической поверхности на другую.
Инструкция применения метода CopyRect в общем виде выглядит так:
Canvas1.CopyRect(Область1, Canvas2, 06ласть2)
Где:
- Canvas1 – графическая поверхность, на которую выполняется копирование;
- Canvas2 – графическая поверхность, с которой выполняется копирование;
- параметр Область2 – задает положение и размер копируемой прямоугольной области, а параметр Область1 – положение копии на поверхности Canvas1.
В качестве параметров область1 и область2 используются структуры типа TRect, поля которых определяют положение и размер области.
Заполнить поля структуры TRect можно при помощи функции Bounds, инструкция обращения к которой в общем виде выглядит так:
Bounds(x,у,Width,Height)
Где:
- х и у – координаты левого верхнего угла области;
- width и Height – ширина и высота области.
Следующая программа, текст которой приведен в листинге 10.12, выводит в диалоговое окно простой мультик – дельфийскую колонну, вокруг которой "летает" некоторый объект. На рис. 10.19 приведены кадры этого мультика (содержимое файла film.bmp).
Диалоговое окно программы приведено на рис. 10.20, оно содержит один единственный компонент – таймер.
Рис. 10.19. Кадры мультика
Рис. 10.20. Форма программы