Главная » Delphi » Анимационные компоненты

0

Завершая разработку очередного приложения в Delphi, мы были  вполне удовлетво рены  полученными результатами, вот только  окно  About казалось нам несколько “скучным”. Необходимо было что то придумать. Внезапно кому то из нас пришла в го лову мысль  создать  новый компонент, который позволил бы включать в диалоговое окно About бегущую полосу с титрами.

Компонент строки титров

Давайте уделим некоторое время  анализу  того,  как работает компонент титров. Он может  прокручивать пакет  строк  в окне  компонента как титры в конце  фильма. В каче стве  базового класса  для компонента TddgMarquee следует использовать класс TCus- tomPanel, так как он обладает необходимыми основными возможностями и красивой трехмерной рамкой.

Компонент TddgMarquee переводит текстовые строки в растровое изображение, находящееся в памяти, и затем копирует части этого изображения на свою поверхность для имитации эффекта прокрутки. Для этого  используется функция API BitBlt(), ко пирующая часть  изображения из памяти на поверхность элемента управления (в соот ветствии с его размером), начиная с верхней части. Затем данная область  перемещается на несколько пикселей вниз  и снова  копируется из памяти. Копирование и смещение повторяется до тех пор, пока не будет достигнут конец изображения в памяти.

Теперь необходимо решить, какие  дополнительные классы  следует  интегрировать  в компонент TddgMarquee, чтобы  он стал анимационным. Во первых, для хранения про кручиваемых строк  потребуется объект TStringList. Во вторых, в памяти должно  со держаться растровое изображение прокручиваемых строк.  Для  этого  вполне подойдет компонент VCL TBitmap.

Создание кода компонента

Как и для обычных компонентов, сначала  необходимо составить план класса TddgMarquee. Разобьем задачу на несколько подзадач. Логически компонент TddgMar- quee может быть разделен на следующие пять частей.

•   Механизм переноса текста в растровое изображение, хранящееся в памяти.

•    Механизм копирования изображения текста из памяти на поверхность компо

нента.

•   Таймер, управляющий процессом прокрутки.

•   Конструктор, деструктор класса и связанные с ними методы.

•   Завершающие штрихи в виде вспомогательных свойств  и методов.

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии