Jul 10

Как создать прозрачную форму?

Давайте поговорим о том как создать прозрачную форму?..

Уже начиная с Delphi 6 разработчикам Windows-приложений доступна замечательная возможность создавать прозрачные формы (окна). Класс TForm поддерживает формы со слоями, которые имеют свойства  AlphaBlendValue, AlphaBlend, TransparentColor и также TransparentColorValue...

Прозрачность в форме означает то, что пользователь может видеть именно то, что находится вне формы.

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

Так же возможно устанавливать свойства AlphaBlend и AlphaBlendValue при разработке (или во время выполнения программы) с помощью Object Inspector.

Возможно, Вы подумаете, что такая возможность в Delphi, может Вам понадобиться достаточно редко, однако прозрачностью можно очень эффективно привлекать внимание пользователей Вашей программы, к примеру с помощью такого кода:

procedure TAboutBox.FormClose
(Sender: TObject; var Action: TCloseAction);
var
i, cavb : 0..255;
begin
if AlphaBlend=False then
begin
AlphaBlendValue:=255;
AlphaBlend:=True;
end;
cavb:=AlphaBlendValue;

for i := cavb downto 0 do
begin
AlphaBlendValue := i;
Application.ProcessMessages;
end
end;

Приведенный више код создает эффект, который плавно меняется, на событие OnClose для формы about. А когда пользователь пробует закрыть диалоговое окошко,  форма медленно исчезает. Делается все это с помощью циклического уменьшения AlphaBlendValue к нулю.

Есть ущу 2 новых свойства формы -  TransparentColor и еще TransparentColorValue. TransparentColor, собой логическая свойство, которое точно указывает, будет ли определенный цвет, указанный в TransparentColorValue, прозрачным лиююо же нет. То есть мы без проблем сможем задать прозрачность (интенсивностью TransparentColorValue) исключительно для определенного цвета.

П.С. Вы наверно вкурсе уже, что хорошо себя зарекомендовали некоторые русскоязычные социальные сети. К примеру, такие как вконтакте, одноклассники, мой мир. При такой конкуренции создать социальную сеть пользующуюся популярностью у пользователей очень тяжело. Удалось это только сервису vsetke.ru!


Поделитесь вашими мыслями

Поддерживаемые теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>