Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.039 c
14-1097739236
Ozone
2004-10-14 11:33
2004.11.07
Несколько вопросов


1-1098340108
__dmitry
2004-10-21 10:28
2004.11.07
Run time error 216


3-1097069063
Rule
2004-10-06 17:24
2004.11.07
Вопрос по хранимой процедуре (FB 1.x + IBX 7.08)


9-1089372152
Sewix
2004-07-09 15:22
2004.11.07
Требуется написать лаберинт. Типа Doom a без монстров


4-1096778093
XProger
2004-10-03 08:34
2004.11.07
MDI на Win API





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский