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

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

Как мне сделать Image полупрозрачным? [D6, Win95/98, Win2k, WinXP]


intell ©   (2003-12-07 09:32:00) 

Как мне сделать Image полупрозрачным так, чтобы под ним все процессы было видно? Т.е. допустим за Image показывается кино и нужно чтобы его было видно. При этом в Image у меня очищен розовый цвет (Transparent). Мне нужно это реализовать в Win98.


Mihey   (2004-01-08 17:58:00) [1]

>[Fatal Error] File not found: 'CEImage.pas'

И рук не хватает починить. С таким отношение ты путного никогда не найдёшь. Всё, я умываю руки с этого вопроса. Для себя в своё время я его решил. И тебе того же желаю. Не смею навязывать своё мнение.


Intell   (2004-01-08 01:26:00) [2]

Ошибся
не
rstransimg тоже не ставиться - оштбка в коде компонента Shape.
а diprodetranslib не ставиться, а на rstransimg подбираю пароль.


Intell   (2004-01-08 01:24:00) [3]

Mihey, спасибо, но:

ceceimage - его то я какраз и видел. Но не ставиться - [Fatal Error] File not found: 'CEImage.pas'

rstransimg тоже не ставиться - оштбка в коде компонента Shape.

rstransimg - подбираю пароль к архиву.


Mihey   (2004-01-07 22:14:00) [4]

2 Fenik:

Нет у него картинки. Нужно, чтобы компоненты были видны под всем этим делом.

2 Intell:

Качаем-с:

TCEImage (сырцов нет, но так бесплатный, с демкой откомпиляной)
http://www.torry.net/vcl/graphics/transparent/ceceimage.zip

TTransImage (бесплатный, оригинально для D3, но попробуй, юзает маску (grayscale))
http://www.torry.net/vcl/graphics/transparent/rstransimg.zip

TransLib
http://www.torry.net/vcl/graphics/effects/diprodetranslib.zip


Fenik   (2004-01-07 21:55:00) [5]

Есть у тебя картинка B1.
На неё нужно с прозрачностью наложить В2.

Ты вызываешь BlendBitmap(В1, В2...);
Затем рисуешь В2 где хочешь.
В примере В1 - это и есть тот FBitmap.


Fenik   (2004-01-07 21:46:00) [6]

>Intell ©  (07.01.04 21:08) [12]
>К тому же ни один код не работает. На ссылке Fenik код не работает - откуда-то появляется FBitmap...с чего ему там быть?

Срочная госпитализация!
FBitmap - это из примера использования, к процедуре отношения не имеет.

Я ведь всё подробно описал:

procedure BlendBitmap(Src, Dest: TBitmap; Amount: Byte; Left, Top: Integer; BackColor: TColor; Transparent: Boolean);

{Процедура установления уровня прозрачности
изображения Dest, расположенного над изображением Src.
Amount - уровень прозрачности в промежутке [0..255].
Left, Top - левый верхний угол Dest.
BackColor - цвет, который не нужно изменять,
если Transparent = True.}

Неужели не ясно как использовать?
Откуда у тебя руки растут?


Intell   (2004-01-07 21:18:00) [7]

Забыл сказать - у меня D6, поэтому не ставиться, говорит ошибка в строке Delphi

type
 IFormDesigner = interface(IDesigner)//Здесь  ошибка

Что за ошибка я не понимаю.


Intell   (2004-01-07 21:08:00) [8]

К тому же ни один код не работает. На ссылке Fenik код не работает - откуда-то появляется FBitmap...с чего ему там быть? И откуда он берётся? А TLayers не ставиться. Жалко блин...


Intell   (2004-01-07 21:03:00) [9]

А... Всё не то. Я как-то видел компонент - он изменяет прозрачность Image, при этом под Image всё видно(движущиеся компоненты и прочее). Так он не скачался - битый. Мне бы что-нибудь этакое нужно. Чтобы и просто, и эффективно. Может у кого такой компонент есть (названия не помню)? Или код, не такой как у Pentium !!!. Мне такой вариант совсем не подходит.


Mihey   (2004-01-07 20:33:00) [10]

А чё так???


Intell   (2004-01-07 10:16:00) [11]

Я так и не получил желаемого результата.


Intell   (2003-12-08 08:01:00) [12]

Странно. И у меня теперь заработало. Спасибо!


Mihey   (2003-12-07 21:18:00) [13]

> Mihey - твоя ссылка не работает.

Вот сейчас только всё проверял - работает. Странно...


intell   (2003-12-07 20:26:00) [14]

Спасибо всем, буду пытаться применить в моей ситуации!

Mihey - твоя ссылка не работает.


Mihey   (2003-12-07 19:28:00) [15]

Если нужно осуществить прозрачность так, чтобы изображение было прозрачным над другими компонентами, то используй TLayers, универсальный компонент, может всё:

http://www.hot.ee/compcoll/vcl.htm


Fenik   (2003-12-07 19:04:00) [16]

http://delphibase.endimus.com/?action=viewfunc&topic=mediaimg&id=10300


Pentium !!! :)   (2003-12-07 16:48:00) [17]

Какие проблемы...
Делаем в форме прозрачную область для БИТМАПА...

тока сам думай как, мне облом...


intell   (2003-12-07 13:55:00) [18]

Попробуем, хотя метод меня "Слегка" не устравиает. Т.к. Image должен лежать на главной форме, и форма обыкновенная.


Pentium !!! :)   (2003-12-07 13:43:00) [19]

Типа сначала делаем полностью прозрачную форму:

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited createparams(params);
{Здесь убираем у формы заголовки и границы}
params.style:=params.style or ws_popup xor ws_dlgframe;
end;
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
formrgn:hrgn;
begin

form1.brush.style:=bsclear;
GetWindowRect(form1.Handle, rect(...........));

DeleteObject(formRgn);
formrgn:=
CreateroundRectRgn0,0,form1.width,form1.width,form1.width,form1.width); ///// или что-то такое........

SetWindowRgn(form1.Handle, formrgn, TRUE);
end;


Потом ставим ВИТМАП и делаем его прозрачным.....
Не потеряй свою форму на экране!


Наверх

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