Форум: "Media";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];
ВнизПрозрачность в 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 вся ветка
Форум: "Media";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.008 c