Анимация без лишних усилий

3144
знака
0
таблиц
0
изображений

Сегодня мы поговорим о том, как достичь красивой анимации. Для этого не нужно писать килобайты кода или строить программу на технологии Flash. Отличные результаты можно получить используя только функции WinAPI или возможности Delphi. Я рассмотрю несколько таких необычных возможностей, причем самый большой пример будет состоять из менее чем 10 (!) строк кода.

Альфа-смешивание

Для того, что бы сделать форму полу-прозрачной не надо использовать какие либо компоненты. Не надо даже прописывать ни строчки кода. Что бы сделать форму полу-прозрачной, достаточно присвоить значению TForm.AlphaBlend := true и AlphaBlendValue меньшее чем 255. Чем меньше будет значение AlphaBlendValue, тем прозрачнее будет форма. Можно манипулировать этими значениями и создавать интересные эффекты с помощью циклов. Вот, например, как можно создать красивый эффект при активации формы:

Form1.AlphaBlend := true;

Form1.AlphaBlendValue := 100;

Form1.Show;

for i := 100 to 255 do

begin

Form1.AlphaBlendValue := i;

Application.ProcessMessages;

end;

Следует заметить, что эффект не будет плавным на слабых машинах.

AnimateWindow

В предыдущем примере я показал, как с помощью цикла плавно вывести форму на экран. Для достижения почти такого же эффекта можно воспользоваться WinApi функцией AnimateWindow. Функции передается 3 параметра: hWnd : THandle - дескриптор окна, которое нужно анимировать; dwTime : Cardinal = время, на протяжении которого будет продолжаться анимация окна; dwFlags : Cardinal; - флаги, определяющие способ анимации. Пример:

AnimateWindow (Form1.Handle, 1000, AW_BLEND);

Form1.Show;

Помимо флага AW_BLEND есть ещё несколько флагов, с помощью которых можно достичь довольно впечатляющие результаты:

AW_HOR_POSITIVE - анимирует форму слева направо

AW_HOR_NEGATIVE - анимирует форму справа налево

AW_VER_POSITIVE - анимирует форму сверху вниз

AW_VER_NEGATIVE - анимирует форму снизу вверх

AW_CENTER - анимирует форму из центра

С помощью этой технологии удобно демонстрировать слайды. А если одновременно ещё и использовать альфа-смешивание, то получится очень впечатляюще.

Дырявая форма

При использовании компонента TShape можно сделать в форме дырку. Положите на форму TShape и присвойте свойству Brush.Color := clGreen. А если ещё и присвоить свойству формы FormStyle := fsStayOnTop то через форму можно не только смотреть на то, что находите позади неё, но и нажимать на кнопки, редактировать текст и т.п. Трюк "Летающие кнопки": расположите TShape на форму (Shape := stRectangle, Brush.Color := clRed), присвойте свойству Align := alClient и присвойте свойству формы BorderStyle = bsNone. Далее добавьте на форму кнопки и другие элементы управления.

Масштабирование

Ну и на последок я расскажу про полезную возможность масштабирования. Само масштабирование производит метод ScaleBy класса TForm. Свойства PixelPerInch и Scaled позволяют Delphi автоматически изменять размер формы в случае если приложение запускается с использованием системного шрифта другого размера. Сам метод масштабирует только содержимое формы, если вы хотите, что бы рамер формы тоже масштабировался вместе с элементами управления, то установите свойство AutoScroll := fa


Информация о работе «Анимация без лишних усилий»
Раздел: Информатика, программирование
Количество знаков с пробелами: 3144
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
4358
0
0

... которое потом тяжело изменить). Так же нужно дать пользователю отключать заставку в настройках, поскольку заставка может просто не понравиться или раздражать пользователя, и он удалит программу только из-за злополучной заставки. Как? Очень просто. Нужно найти подходящюю картинку, разместить необходимые компоненты (если вы хотите что ни будь отображать на заставке) на форме и написать несколько ...

Скачать
246720
1
5

... , изменяя представление о мире, обязывают повышать ответственность медицины перед обществом. В данной работе рассматривался процесс создания интернет-ресурса для системы дистанционного образования по курсу «Медицинская информатика». В работе приведено обоснование необходимости в применении средств дистанционного обучения для сотрудников медучреждений Тульской области, предложена структура ...

Скачать
31233
1
0

... трудоемкость использования или более высокая эффективность. Показатель - это характеристика товара, такая как вес или размер. Распространенная ошибка при продаже - концентрация на показателях товара (товарная ориентация), а не на потребительских выгодах (рыночная ориентация). Компании разработали три различных стиля проведения торговой презентации: 1.   Самый известный - стандартный подход, ...

Скачать
21228
1
0

... работников с учетом рынка и целевой аудитории, с которой необходимо иметь личные контакты. Далее следует разработать программу практической реализации мероприятий личной продажи. При этом обычно личную продажу рассматривают как непрерывный процесс, включающий семь основных этапов: 1 этап – установление целевой аудитории, подбор потенциальных покупателей; 2 этап – подготовка к контакту с ...

0 комментариев


Наверх