Доклад

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

Работа добавлена на сайт bukvasha.net: 2015-10-25

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 26.2.2025



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

Сегодня мы поговорим о том, как достичь красивой анимации. Для этого не нужно писать килобайты кода или строить программу на технологии 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 := false.

Список литературы

Для подготовки данной работы были использованы материалы с сайта http://www.soch.imperium.by



1. Отчет по практике Анализ обеспеченности денежными средствами ЗАО Пинскдрев
2. Реферат на тему Genteic Variation Essay Research Paper Genetic variation
3. Курсовая Оценка климатических нагрузок на металлические башни
4. Реферат Роль резервных мощностей в экономике предприятия
5. Реферат Правовое регулирование права интеллектуальной собственности на международном уровне
6. Реферат на тему Cloning Ethics Essay Research Paper The rapid
7. Реферат Исследование избирательности внимания, влияния прошлого опыта на особенности мышления, акцентуац
8. Реферат Понимание культуры в классической и постклассической западноевропейской философии
9. Сочинение на тему Сочинения на свободную тему - Добро и зло. человек и его вера
10. Реферат на тему An Explanation Of Terrorism Essay Research Paper