Прозрачность формы

Автор: Winter_snow

Чтоб регулировать прозрачность формы, нужно установить ей свойство AlphaBlend в True и изменять свойство AlphaBlendValue, значение последнего от 0 (форма полностью прозрачна и невидима) до 255 (форма абсолютно непрозрачна). 

Пример использования:

Выложите на форму TTimer. Установите ему свойство Interval в 10. Затем объявляем глобальную переменную Value 

...
var
 Form1: TForm1;
 Value: Byte = 0;

Теперь прописываем событие OnCreate формы.

procedure TForm1.FormCreate(Sender: TObject);
begin
 AlphaBlend := True;
 AlphaBlendValue := Value;
end;

И теперь прописываем обработчик таймера OnTimer

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 Value:=Value + 1;
 if Value <= 254 then
   AlphaBlendValue := Value
 else
 begin
   Value := 0;
   Timer1.Enabled := False;
 end;
end;

При запуске будет наблюдаться плавное появление формы.

Просмотров: 8712

Обсудить на форуме

0   Спам
(07.11.2011)
7. Андрей
А можно сделать прозрачной Panel ? Помогите!!!

0   Спам
(17.07.2011)
6. Guest
> Codyspb
И зачем так сразу вызывать деструктор таймера?

0   Спам
(11.07.2011)
5. Codyspb
Рафаель, чище было бы, если вместо Timer1.Enabled:= false , было бы написано timer1.destroy

0   Спам
(14.03.2010)
4. Рафаэль
procedure TForm1.FormCreate(Sender: TObject);
begin
AlphaBlend := True;
AlphaBlendValue :=0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Form1.AlphaBlendValue<>255 then Form1.AlphaBlendValue:=Form1.AlphaBlendValue+1
else Timer1.Enabled:=false;
end;

Имхо чище, и меньше кода, а вот код на плавное исчезание программы после закрытия:

AnimateWindow(Handle, 1000, AW_HIDE or AW_BLEND);


0   Спам
(23.11.2009)
3. Антон (Digy)
так сначала выполнится строка, которая поставит Value в 8, а потом деактивируется таймер
Ответ: Ничего не исчезнет! Все нормально. Value это переменная, а прозрачность формы. Единственное Value:=0 не нужно.

0   Спам
(19.11.2009)
2. Unnamed_user
Почему же исчезнет? Таймер-то самодеактивируется, когда значение Value будет равно 255

0   Спам
(18.11.2009)
1. Антон (Digy)
поправочки:
1) форма будет полность невидима и прозрачна при значении AlphaBlendvalue = 1, а при значении 0 она будет ещё и неосязаема.
2) если написать как в процедуре по тпймеру, то форма действительно плавно появится, но потои совсем исчезнет


Имя *:
Email:


Код *:

Copyright © 2008-2016 Программирование на Delphi для начинающих и не только

Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам

Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации

Хостинг от uCoz

Автор проекта: Борисов Сергей

e-mail: save-x@yandex.ru

Связь с администрацией сайта