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

Вниз

Прозрачная ФОРМА, но не компоненты.   Найти похожие ветки 

 
greenrul ©   (2002-12-03 19:09) [0]

Как сделать нивидымым форму, оставив все control"ы на ней видимыми? Пробовал через регионы (SetWindowRgn), но он либо всю форму, либо ничего.

Можно конечно сложить все control"ы в один регион, и его засобачить в SetWindowRgn, но тогда
1) Нет ли другого, более оптимального способа?
2) Если нет, то как объеденить эти регионы?


 
greenrul ©   (2002-12-04 19:12) [1]

?


 
Юрий Зотов ©   (2002-12-04 19:56) [2]

1. Попробуйте повозиться со стилем формы WS_EX_TRANSPARENT (устанавливается в методе CreateParams). Но если и получится, то не для графических контролов.

2. CombineRgn.


 
kronprince ©   (2002-12-04 20:43) [3]

Ты пробовал да не распробовал.

CombineRgn() - и все контролы в один регион :)))


 
mukha ©   (2002-12-04 22:54) [4]

Отправил пример. Правда только один EXE-файл.Исходники никак не найду.сделано в Д-5, скампилировано без пакетов, вес 15 КБ, заинтересует буду искать исходники.


 
ZEE ©   (2002-12-05 01:16) [5]

Вот пример с регионами.

в protected добавляем
procedure RebuildWindowRgn;

в OnCreate формы добавляем
RebuildWindowRgn;

и добавляем саму процедурку
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;



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

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

Наверх




Память: 0.48 MB
Время: 0.014 c
3-51618
Stupid
2002-11-26 05:47
2002.12.16
Дата


14-51917
Rinat
2002-11-25 11:05
2002.12.16
Добавление новой записи в базу.


1-51770
kronprince
2002-12-04 20:32
2002.12.16
Кто нибудь создавал формы в initialization ???


3-51595
Romario_123
2002-11-26 23:17
2002.12.16
Помогите побороть BLOB поля и картинки!! Помогите Плииизз!!!


3-51578
Брат
2002-11-27 12:14
2002.12.16
Можно ли из Grid выбрать данные?