Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.16;
Скачать: CL | DM;

Вниз

Прозрачность в Win 9x   Найти похожие ветки 

 
SGrigory   (2002-04-29 15:36) [0]

Как в 9х сделать прозрачную форму? Желательно, чтобы работало и в NT. Заранее благодарен.


 
Phil   (2002-05-04 17:46) [1]

Работает везде, и в ХР в частности:

unit unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm)
Button1: TButton;
Button2: TButton; // это просто кнопки на форме - для демонстрации
protected
procedure RebuildWindowRgn;
procedure Resize; override;
public
constructor Create(AOwner: TComponent); override;
end;
var Form1 : TForm1;
implementation// ресурс этой формы
{$R *.DFM}
{ Прозрачная форма }
constructor TForm1.Create(AOwner: TComponent);
begin inherited; // убираем сколлбары, чтобы не мешались
// при изменении размеров формы
HorzScrollBar.Visible:= False; VertScrollBar.Visible:= False;
// строим новый регион
RebuildWindowRgn;
end;
procedure TForm1.Resize;
begin inherited;
// строим новый регион
RebuildWindowRgn;
end;
procedure TForm1.RebuildWindowRgn;
var FullRgn, Rgn: THandle; ClientX, ClientY, I: Integer;
begin
// определяем относительные координаты клиенской части
ClientX:= (Width - ClientWidth) div 2; ClientY:= Height - ClientHeight - ClientX;
// создаем регион для всей формы
FullRgn:= CreateRectRgn(0, 0, Width, Height);
// создаем регион для клиентской части формы
// и вычитаем его из FullRgn
Rgn:= CreateRectRgn(ClientX, ClientY, ClientX + ClientWidth, ClientY +ClientHeight);
CombineRgn(FullRgn, FullRgn, Rgn, rgn_Diff);
// теперь добавляем к FullRgn регионы каждого контрольного элемента
for I:=0 to ControlCount -1 do
with Controls[I]
do
begin
Rgn:= CreateRectRgn(ClientX + Left, ClientY + Top, ClientX + Left +Width, ClientY + Top + Height);
CombineRgn(FullRgn, FullRgn, Rgn, rgn_Or);
end;
// устанавливаем новый регион окна
SetWindowRgn(Handle, FullRgn, True);
end;
end.


 
hoaxer ©   (2002-05-06 10:35) [2]

Зачем так мучаться? В делфи 6 у формы есть свойство AlphaBlend и еще одно такого-же рода.


 
Mambo ©   (2002-05-17 16:19) [3]

hoaxer © (06.05.02 10:35) - да но сколько сам Делфи весит и стоит ли из за этого его ставить?



Страницы: 1 вся ветка

Текущий архив: 2002.09.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
14-50922
bob1906
2002-08-21 02:41
2002.09.16
Как написать свою поисковую програму


1-50686
Лана Розанова
2002-09-04 16:03
2002.09.16
Фильтры


7-51008
Jorchick
2002-07-04 17:14
2002.09.16
Работа с реестром


1-50847
FireStream
2002-09-04 15:10
2002.09.16
Странные глюки с размерами


6-50904
Zhlog
2002-07-09 10:22
2002.09.16
Соединение с интернетом. Проблема!!!!!