Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
ВнизПрозрачная форма Найти похожие ветки
← →
Simon (2004-10-19 05:12) [0]Как сделать прозрачную форму?
Я гдето встречал что-то типа:
var
Form2: TForm2;
begin
Form2:= TForm2.Create(self);
form2.Color:= form1.Color; //на form2 лежит Shape
form2.Shape1.Brush.Color:= form1.Color;
form2.Show;
end;
← →
TeNY © (2004-10-19 07:36) [1]
form1.AlphaBlend:=true;
form1.AlphaBlendvalue:=150;
← →
TeNY © (2004-10-19 09:22) [2]а да токо в XP2k катитъ
← →
Rem (2004-10-19 09:52) [3]>>Призрачная форма
Что Вы конкретно имели в виду?
← →
crash_Rider (2004-10-20 02:27) [4]Он имел ввиду что этот код :
-----------------------------
form1.AlphaBlend:=true;
form1.AlphaBlendvalue:=150;
--------------------------------
Будет работать только в 2000 и ХР!
А если нужно сделать еще и в 98 то в инете надо искать там есть примеры!
← →
Rem © (2004-10-20 09:42) [5]2 [4]
Не делайте столь поспешных выводов. "Прозрачная" форма может быть и такой:Form1.TransparentColorValue := GetSysColor(COLOR_BTNFACE);
Form1.TransparentColor := true;
← →
InfMag © (2004-10-21 16:35) [6]С помощью этой функции создаются так называемые "Обезбашенные окна"
function CreateRgnFromBitmap(rgnBitmap: TBitmap): HRGN;
var
TransColor: TColor;
i, j: Integer;
i_width, i_height: Integer;
i_left, i_right: Integer;
rectRgn: HRGN;
begin
Result := 0;
i_width := rgnBitmap.Width;
i_height := rgnBitmap.Height;
transColor := rgnBitmap.Canvas.Pixels[0, 0];
for i := 0 to i_height - 1 do
begin
i_left := -1;
for j := 0 to i_width - 1 do
begin
if i_left < 0 then
begin
if rgnBitmap.Canvas.Pixels[j, i] <> transColor then
i_left := j;
end
else
if rgnBitmap.Canvas.Pixels[j, i] = transColor then
begin
i_right := j;
rectRgn := CreateRectRgn(i_left, i, i_right, i + 1);
if Result = 0 then
Result := rectRgn
else
begin
CombineRgn(Result, Result, rectRgn, RGN_OR);
DeleteObject(rectRgn);
end;
i_left := -1;
end;
end;
if i_left >= 0 then
begin
rectRgn := CreateRectRgn(i_left, i, i_width, i + 1);
if Result = 0 then
Result := rectRgn
else
begin
CombineRgn(Result, Result, rectRgn, RGN_OR);
DeleteObject(rectRgn);
end;
end;
end;
end;
{и т.д. и т.п}
procedure TMainForm.FormCreate(Sender: TObject);
var
WindowRgn: HRGN;
begin
windowRgn := CreateRgnFromBitmap(Image1.Picture.Bitmap);
SetWindowRgn(Handle, WindowRgn, True);
end;
← →
TeNY © (2004-10-22 11:31) [7]
> 2 [4]
>
> Не делайте столь поспешных выводов. "Прозрачная" форма может
> быть и такой:
> Form1.TransparentColorValue := GetSysColor(COLOR_BTNFACE);
> Form1.TransparentColor := true;
кстати тоже только в 2к и хр у меня в ме по крайне мере не работает
← →
Rem © (2004-10-22 11:50) [8]InfMag © (21.10.04 16:35) [6]
Это болезнь. И диагноз ей: геморрой.
Особенно понравилось:end;
end;
end;
end;
{и т.д. и т.п}
Сколько этого {и т.д. и т.п} должно быть?
И вообще, интересно, что при этом получится?... А то такой корявый код даже копировать не хочется, не то что проверять; а формулировка "Обезбашенные окна" не говорит ни о чем, разве что характеризует автора, причем, явно не с лучшей стороны.
А еще мне почему-то кажется, что Ваш алгоритм создания региона из растра весьма медленный. Очень-очень медленный...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.042 c