Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Форма с прозрачностями в CLX? [D7, Win2k]


Glex ©   (2006-01-08 17:30:00) 

В clx у формы нет свойства transparent, в связи с чем сделать области формы цвета нижнего левого пикселя стандартным методом не представляется возможным.

Какими способами реализуется прозрачность областей формы в clx?


Glex   (2006-01-12 22:22:00) [1]

Вопрос остаётся открытым!
Как сделать Пиксель(x,y) на перманентно прозрачным?


Glex   (2006-01-10 23:18:00) [2]

Borland clx - это что-то, чтобы потом приложение можно было в 5 сек на Linux портировать!
В вашем коде WinApi похоже используется((


antonn   (2006-01-10 06:50:00) [3]

здесь создается битмап 32 битный, с альфаканалом, потом этот битмап помещается вместо изображения формы.
RowOut[x].rgbReserved:= - это байт альфаканала, от 0 до 255, при 255 - абсолютная видимость. Его я заполняю исходя из битмапа-маски (черно-белая картинка там...), т.е. беру среднее арифметичекое от 3 цветов (хотя это и не правильно).

ЗЫ не знаю, что такое clx, просто ответил на [2] :)


Glex   (2006-01-09 18:11:00) [4]

Я посмотрел код несколько раз, но с таким сталкиваюсь впервые. Там, кстати не clx, и даже много из windows.pas используется(
Но, я так понял пиксель прозрачным делается где-то здесь...
begin
 _B_out.Width:=_B_in.Width;
 _B_out.Height:=_B_in.Height;
 for y:=0 to _B_in.Height-1 do begin
    RowOut:= _B_out.ScanLine[y];
    RowIn:= _B_in.ScanLine[y];
    RowInMask:= _B_mask.ScanLine[y];
   for x:=0 to _B_in.Width-1 do begin
         RowOut[x].rgbReserved:=trunc((RowInMask[x].rgbtBlue+RowInMask[x].rgbtGreen+RowInMask[x].rgbtRed)/3);
         RowOut[x].rgbBlue:=byte(trunc(RowIn[x].rgbtBlue*RowOut[x].rgbReserved/255));
         RowOut[x].rgbGreen:=byte(trunc(RowIn[x].rgbtGreen*RowOut[x].rgbReserved/255));
         RowOut[x].rgbRed:=byte(trunc(RowIn[x].rgbtRed*RowOut[x].rgbReserved/255));
   end;
 end


Где?)))


antonn   (2006-01-09 16:30:00) [5]

ну тут глянь, там файл прикреплен в 4 посте:
http://forum.sources.ru/index.php?showtopic=127559


Glex   (2006-01-09 13:25:00) [6]

plz очень нужно!
Glex


Glex   (2006-01-08 23:00:00) [7]

ОК, раз никто не знает, скажите тогда, как сделать Пиксель(x,y) на перманентно прозрачным?


Glex   (2006-01-08 19:10:00) [8]

ап)


Наверх

Титульная страница Поиск, карта сайта Написать письмо