Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PNG и переменная полупрозрачность 
:(
    Опции темы
Attack
Дата 10.1.2010, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 20.7.2006

Репутация: нет
Всего: нет



Как сделать переменную полу прозрачность, на основе PNG изображения?

Есть рисунок(принтскрин из фотошопа): 
user posted image

Как видите левая часть прозрачна, а правая нет.

Это непосредственно сам файл:
user posted image

Итак, я создаю форму(Делаю её прозрачной, TransperentColor и Color = clBlue), кидаю на неё Image, загружаю в него мой рисунок, и вот что получаю:
(кликабельно)
user posted image
Как видно рисунок прозрачен, однако сквозь него видна форма!

Как тогда нужно делать чтобы всё работало?

P.S.
Я перерыл уже довольна много инфы, но ничего полезного не нашёл...
PM   Вверх
artsb
Дата 10.1.2010, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 1
Всего: 64



Attack, я в этом вопросе не компетентен, но точно знаю, что для окна нужно установить спец. стиль WS_EX_LAYERED.
Где-то был у меня пример. Если найду - выложу.

Это сообщение отредактировал(а) artsb - 10.1.2010, 14:49


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
artsb
Дата 10.1.2010, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 1
Всего: 64



Вот нашёл пример (другой правда) - здесь.

Замечание: если форме задать стиль WS_EX_LAYERED, то все контролы придётся отрисовывать вручную  smile  Желание заниматься этим ещё не пропало smile
Как вариант, вместо отрисовки, можно создать дополнительную форму с полностью прозрачным фоном, разместить на ней компоненты и всегда "держать" её поверх формы с PNG фоном. Тут придётся повозиться.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
AntonN
Дата 10.1.2010, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: 7
Всего: 18



ищите по слову UpdatelayredWindow, примеры: http://forum.vingrad.ru/forum/topic-194182...y1400262/0.html


--------------------
user posted image
PM MAIL WWW   Вверх
Attack
Дата 10.1.2010, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 20.7.2006

Репутация: нет
Всего: нет



Спасибо, попробую. А может быть есть какой-нибудь маленький компонент, который это делает?
PM   Вверх
artsb
Дата 10.1.2010, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 1
Всего: 64



Цитата(Attack @  10.1.2010,  20:19 Найти цитируемый пост)
А может быть есть какой-нибудь маленький компонент, который это делает? 

Я о таком не слышал. Единственное, Alpha Skins


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
AntonN
Дата 10.1.2010, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: 7
Всего: 18



Цитата

Спасибо, попробую. А может быть есть какой-нибудь маленький компонент, который это делает?

да, есть, например такой http://kladovka.net.ru/index.cgi?pid=list&rid=340
но вынужден огорчить, что обычные контролы сами не рисуются на такой форме, их нужно рисовать самому, и тут начинаются проблемы с теми контролами, которые рисует система (например поля ввода)


--------------------
user posted image
PM MAIL WWW   Вверх
artsb
Дата 11.1.2010, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 1
Всего: 64



Цитата(AntonN @  10.1.2010,  23:52 Найти цитируемый пост)
но вынужден огорчить, что обычные контролы сами не рисуются на такой форме, их нужно рисовать самому, и тут начинаются проблемы с теми контролами, которые рисует система (например поля ввода) 


Цитата(artsb @  10.1.2010,  14:53 Найти цитируемый пост)
Как вариант, вместо отрисовки, можно создать дополнительную форму с полностью прозрачным фоном, разместить на ней компоненты и всегда "держать" её поверх формы с PNG фоном. Тут придётся повозиться. 

Я где-то видел пример выхода из этой ситуации, описанным мною выше способом. Так что выкрутиться можно  smile  Но проблем всё равно не избежать  smile 


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Alexeis
Дата 11.1.2010, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Цитата(AntonN @  10.1.2010,  22:52 Найти цитируемый пост)
вынужден огорчить, что обычные контролы сами не рисуются на такой форме, их нужно рисовать самому, и тут начинаются проблемы с теми контролами, которые рисует система (например поля ввода) 

  Есть такая идея, воспользоваться режимом двойной буферизации, т.е. в финальном варианте рисовать битмап не на канву, а обновлять слой. Если кто-то возьмется проработать сообщите результаты smile .


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
AntonN
Дата 11.1.2010, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: 7
Всего: 18



Цитата

Есть такая идея, воспользоваться режимом двойной буферизации, т.е. в финальном варианте рисовать битмап не на канву, а обновлять слой

я сколько не спрашивал - мне никто так и не сказал, как Tmemo заставить рисоваться не на канву на чем она лежит, а на канву битмапа. Так, чтобы рисовались выделения текста, рисовалась каретка. http://www.rsdn.ru/forum/delphi/2362380.aspx
я на это убил практически года, буду рад если даже сейчас мне расскажут что и как smile


--------------------
user posted image
PM MAIL WWW   Вверх
Alexeis
Дата 11.1.2010, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Цитата(AntonN @  11.1.2010,  16:44 Найти цитируемый пост)
Так, чтобы рисовались выделения текста, рисовалась каретка.

  По идее каретку рисует ксором система. При этом WM_PAINT не вызывается. Контрол с фокусом можно отрывать от поверхности формы, как только он потеряет фокус возвращать на место, ну или клонировать. 
  Кстати миранда умеет делать скины с градиентной прозрачностью, можешь исследовать ее smile .


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0674 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.