Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Прозрачные формы


Автор: Алекс С. 28.8.2002, 23:25
Вынь2К и ХРень поддерживают прозрачность окон (напр. как у Winamp-а версии 3), вопрос -- как это можно реализовать?

Автор: Devorior 29.8.2002, 00:34
можешь Дельфю 6-ую поставить, там свойство в Object Inspector'е есть  ;-)

Автор: Dapo 29.8.2002, 11:54
Опаньки! Слов нет, я на 6-й уже около 2-х месяцев пишу, а этот прикол как-то промеж глаз попадал (наверное потому, что не нужно было). Однааако...

Автор: Алекс С. 30.8.2002, 19:11
Нет, я имел ввиду вот это (спасибо Вячеславу с форума по Билдеру):
---
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
SetLayeredWindowAttributes(Handle, 0, alpha, LWA_ALPHA);
---
-где переменная alpha типа int от 0 (невидимка) до 255 (обычная, непрозрачная форма).
А, кстати, чё-то у меня не заработала прозрачность инспектора объектов. Может я чё-то не то делаю. Но так или иначе, насколько я понимаю, там несколько другая прозрачность имеется ввиду.

Автор: RA 30.8.2002, 19:55
Могу порекомендовать компоненты BuPack там оно есть

Автор: Алекс С. 30.8.2002, 20:06
А нафига, если это реализуется двумя АРI ф-ями?

Автор: Addmin 4.3.2006, 09:59
Если AlphaBlend-прозрачность из инспектора незаработала, может, просто ты после ввода значения в инспекторе не нажал Enter - не закрепил значение.

Автор: SoWa 4.3.2006, 20:18
http://forum.vingrad.ru/index.php?showtopic=54390&view=findpost&p=431360
+светофильтры.

Автор: Штык 4.3.2006, 22:22
есть еще один спосиоб через вин апи

Код

 function SetLayeredWindowAttributes(hwnd: longint; crey: byte; 
 bAlpha: byte; dwFlags: longint): longint; stdcall; external 'USER32.DLL';

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var old: longint;
begin
  old:=GetWindowLongA(Handle,GWL_EXSTYLE);
  SetWindowLongA(Handle,GWL_EXSTYLE,old or $80000);
  SetLayeredWindowAttributes(handle, 0, 100, $2);
end;





кстати с помощью этой функции можно делать прозрачными не только форму но и чужие окна я например трей сделал прозрачным весьма прикольно получилось так что эксперементируй..

помоему это лучше и прозе чем юзать чужие либы))хотя клму как виднгее)) а вообще данная тема уже поджнималась так что юзай поиск;)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)