Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2009, 20:39   #1
postal2
Форумчанин
 
Аватар для postal2
 
Регистрация: 31.10.2008
Сообщений: 215
По умолчанию Полупрозрачный image

Как средствами delphi 7 сделать ПОЛУпрозрачный image?
[Ferox]
postal2 вне форума Ответить с цитированием
Старый 02.07.2009, 22:43   #2
postal2
Форумчанин
 
Аватар для postal2
 
Регистрация: 31.10.2008
Сообщений: 215
По умолчанию

Вот нашёл ПОЧТИ то, что надо. А есть ещё предложения??
Вложения
Тип файла: rar 123.rar (31.6 Кб, 200 просмотров)
[Ferox]
postal2 вне форума Ответить с цитированием
Старый 02.07.2009, 23:33   #3
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Можно разместить Image на отдельной форме и сделать ее полупрозрачной, там есть свойство AlphaBlend.
Если не секрет - зачем?
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 03.07.2009, 00:27   #4
0nni
Форумчанин
 
Аватар для 0nni
 
Регистрация: 24.07.2008
Сообщений: 279
По умолчанию

Вот в этой ветке несколько хороших примеров, только с простым TImage боюсь не получится.
http://desksoft.ru/index.php?forum=13
Сказал и загрустил от бесспорности своей правоты.
0nni вне форума Ответить с цитированием
Старый 03.07.2009, 10:06   #5
postal2
Форумчанин
 
Аватар для postal2
 
Регистрация: 31.10.2008
Сообщений: 215
По умолчанию

Цитата:
Сообщение от Daramant
Можно разместить Image на отдельной форме и сделать ее полупрозрачной, там есть свойство AlphaBlend.
Вот так и правда можно, что-то я не догадался, спасибо)

Цитата:
Сообщение от Daramant
Если не секрет - зачем?
Хочу написать свою игру вроде "Компьютерной эволюции" или "Compman`a", только там будет монитор с "установленной" системой - должно получиться прикольно) для последних версий ОС надо делать прозрачность окнам, поэтому и подыскиваю материал заранее.

Цитата:
Сообщение от 0nni
Вот в этой ветке несколько хороших примеров, только с простым TImage боюсь не получится.
http://desksoft.ru/index.php?forum=13
Спасибо, вечером гляну
[Ferox]
postal2 вне форума Ответить с цитированием
Старый 03.07.2009, 10:46   #6
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Можно же просто AlphaBlend'ом...

Код:
Var Bitmap: TBitmap;

...

Procedure TForm1.FormCreate(Sender: TObject);
Begin
Bitmap:=TBitmap.Create;
Bitmap.LoadFromFile('F:\Alpha_TBitmap_32bit.bmp');
End;

Procedure TForm1.FormPaint(Sender: TObject);
Var bf: BlendFunction;
Begin
bf.BlendOp:=AC_SRC_OVER;
bf.BlendFlags:=0;
bf.AlphaFormat:=AC_SRC_ALPHA; // 0 - èãíîðèðóåì èñõîäíûé àëüôà êàíàë  |  AC_SRC_ALPHA - èñïîëüçóåì èñòî÷íèê alpha (åñëè ðèñóíîê 32-bit)
bf.SourceConstantAlpha:=255;  // îò 0 äî 255 - ïðîçðà÷íîñòü  |  ïðè èñïîëüçîâàíèè AC_SRC_ALPHA íàäî ñòàâèòü 255
Windows.AlphaBlend(Form1.Canvas.Handle, 0, 0, Bitmap.Width, Bitmap.Height, Bitmap.Canvas.Handle, 0, 0, Bitmap.Width, Bitmap.Height, bf);
End;

А кстати кто такой "TsSemitransPanel"..? Впервые про такого слышу...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 03.07.2009, 10:48   #7
postal2
Форумчанин
 
Аватар для postal2
 
Регистрация: 31.10.2008
Сообщений: 215
По умолчанию

Это самонаписаный, скачал с какого-то форума, он вроде в проекте лежит. По идее прога для D2007, я переписал там немного под D7

DomiNick, спасибо) сейчас попробую

Чтото этот альфаблэнд не очень хочет работать или я чего-то не догоняю.
Ничего на форме не отображается, а если считать тот рисунок в image, то он такой же, как и при загрузке. Может я просто не 32 битный гружу..

DomiNick, переведи плиз, что у тебя в примечаниях написано, а то ascii не очень с unicode дружит)
[Ferox]

Последний раз редактировалось postal2; 03.07.2009 в 11:03.
postal2 вне форума Ответить с цитированием
Старый 03.07.2009, 11:04   #8
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
Лампочка

Только в том примере я брал 32-битный рисунок со своей прозрачностью...
И с кодировками у меня какой-то глюк...

Если нужно рисовать 32-битный рисунок с собственной прозрачностью:
Код:
bf.AlphaFormat:=AC_SRC_ALPHA;
bf.SourceConstantAlpha:=255;
А если простой рисунок:
Код:
bf.AlphaFormat:=0;
bf.SourceConstantAlpha:=180; // прозрачность рисунка - от 0 до 255
Ну и "bf" можно в принципе глобальной делать...



Чтоб рисунок нормально ложился на TLabel надо сделать этому TLabel'у:
Код:
Label1.Transparent:=True;
I am the First of Cyber Evolution...
I am the First to Program your Future...

Последний раз редактировалось DomiNick; 03.07.2009 в 11:08.
DomiNick вне форума Ответить с цитированием
Старый 03.07.2009, 11:14   #9
postal2
Форумчанин
 
Аватар для postal2
 
Регистрация: 31.10.2008
Сообщений: 215
По умолчанию

Короч всё равно не получается. Скинь исходник, если не затруднит
[Ferox]
postal2 вне форума Ответить с цитированием
Старый 03.07.2009, 12:34   #10
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Вот архив, а что не получается-то?

Цитата:
Хочу написать свою игру вроде "Компьютерной эволюции" или "Compman`a"
Это что за зверь?)
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование Image mustang007 Компоненты Delphi 3 10.06.2009 22:21
Компонент - Image?! $T@LKER Компоненты Delphi 5 10.05.2009 00:13
Image IVANSour Общие вопросы Delphi 10 19.01.2009 18:11
image Черничный Общие вопросы Delphi 2 25.06.2008 16:09
image Elm0 Свободное общение 4 21.06.2007 17:34