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

Вниз

Прозрачность формы   Найти похожие ветки 

 
Smolin   (2003-02-27 13:18) [0]

Подскажите пожалуста как сделать цвет формы прозрачным, но чтоб все объекты на ней были виды ???

И еще вопрос есть ли функция которая выставляла бы частоту обновления экрана ?


 
Bizon ©   (2003-02-27 13:41) [1]

constructor TForm1.Create(AOwner: TComponent);
begin
inherited;
HorzScrollBar.Visible:= False; // убираем сколлбары, чтобы не мешались
VertScrollBar.Visible:= False; // при изменении размеров формы
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;



 
100ляров   (2003-02-27 15:35) [2]

Зачем так извращаться?
В каком-нить обработчике события, например OnShow пишем

Brush.Style:=bsClear;

и все.
Однако нужно позаботиться об обновлении прозрачных областей, так как после того, как поверх прозрачной области было окно, а потом оно закрылось - в этой области остается кусок этого окна.



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

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

Наверх




Память: 0.47 MB
Время: 0.019 c
14-30015
Delirium^.Tremens
2003-02-14 16:59
2003.03.10
Кто что читает?


14-30051
Владимир
2003-02-14 16:16
2003.03.10
Как узнать имена процедур и функций в чужой ДЛЛ?


9-29696
madburro
2002-08-24 22:28
2003.03.10
TCP/IP или чё другое для мултиплеера?


8-29961
Nimda2000
2002-11-29 08:33
2003.03.10
Доступ к avi


4-30173
Vasily Terekhov
2003-01-18 14:05
2003.03.10
LoadKeyboardLayout для активного окна