Анимация формы
Анимация формы
Анимация формы Разные методы Альфа-смешивание Для того, что бы сделать форму полу-прозрачной не надо использовать какие либо компоненты. Не надо даже прописывать ни строчки кода. Что бы сделать форму полу-прозрачной, достаточно присвоить значению 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.