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

Вниз

Как сделать прозрачное окно?   Найти похожие ветки 

 
Andrew75 ©   (2003-04-19 13:41) [0]

Как сделать прозрачное окно?


 
Лана Розанова   (2003-04-19 13:47) [1]

Код большой, не помню. Зайди в Поиск или в кладовку, там есть точно.


 
Snap ©   (2003-04-19 13:54) [2]

Совсем прозрачное или на несколько процентов прозрачное?


 
Andrew75 ©   (2003-04-19 14:05) [3]

Совсем


 
Yanis   (2003-04-19 14:17) [4]

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.

А ещё есть компонент что бы делать отдельный участок формы прозрачным.
Кажется он лежит здесь: http://alexeenko.prima.susu.ac.ru/lynx/files/vcl/glassy10.zip


 
Snap ©   (2003-04-19 14:18) [5]

Если ты имеешь ввиду форму, то visible:=false, если эта форма только одна и такой способ не поможет, можно присвоить ей регион к примеру только с одной видимой точной, которую ничкто и не заметит. А вот если окно создаётся с помощью АПИ, то просто нужно указать определённые опции в классе.
К тому же можно попробовать использовать функцию ShowWindow, опять таки с определёнными опциями.



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

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

Наверх




Память: 0.48 MB
Время: 0.015 c
9-369
Анат
2002-08-24 18:06
2003.05.01
А нужны ли они, квесты ?


3-441
Саня
2003-04-13 12:02
2003.05.01
Как отобрать записи из ранее отобранных записей.


1-528
Kair
2003-04-19 23:14
2003.05.01
ListBox.Item


14-777
Sergo
2003-04-15 11:21
2003.05.01
BIOS


3-476
kolesya
2003-04-14 16:30
2003.05.01
ADODataSet