Форум: "Основная";
Текущий архив: 2002.12.16;
Скачать: [xml.tar.bz2];
ВнизПрозрачная ФОРМА, но не компоненты. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c