Текущий архив: 2004.04.04;
Скачать: CL | DM;
Вниз
Прозрачная форма и StayOnTop Найти похожие ветки
← →
Vik_Mix (2004-01-19 22:48) [0]Почему когда я делаю форму прозрачной (
procedure TForm2.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;
"код из примера")
то свойство формы FormStyle = fsStayOnTop не действует?
← →
Vik_Mix (2004-01-22 22:19) [1]что... никто не знает?
← →
sniknik © (2004-01-23 16:46) [2]может просто у всех все работает? и просто не знают что тебе сказать. (чтобы не обидеть ;о)))
серьезно
проверил, работает
взял процедуру (выше) поставил
procedure TForm1.RebuildWindowRgn; //Form1 на главном пробовал у тебя Form2 не главное? может имеет значение?
var
FullRgn, Rgn: THandle;
ClientX, ClientY, I: Integer;
begin
FormStyle:= fsStayOnTop;
// определяем относительные координаты клиенской части
....
и оно так и стало StayOnTop, непонятно почему у тебя по другому может дельфя/виндовс не весде одинаковы.
у меня делфя 7, w2k 4SP. тогда глюк в одном из двух > D6, WinXP.
Страницы: 1 вся ветка
Текущий архив: 2004.04.04;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.029 c