![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| Attack |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 20.7.2006 Репутация: нет Всего: нет |
Как сделать переменную полу прозрачность, на основе PNG изображения?
Есть рисунок(принтскрин из фотошопа): ![]() Как видите левая часть прозрачна, а правая нет. Это непосредственно сам файл: ![]() Итак, я создаю форму(Делаю её прозрачной, TransperentColor и Color = clBlue), кидаю на неё Image, загружаю в него мой рисунок, и вот что получаю: (кликабельно) ![]() Как видно рисунок прозрачен, однако сквозь него видна форма! Как тогда нужно делать чтобы всё работало? P.S. Я перерыл уже довольна много инфы, но ничего полезного не нашёл... |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 1 Всего: 64 |
Attack, я в этом вопросе не компетентен, но точно знаю, что для окна нужно установить спец. стиль WS_EX_LAYERED.
Где-то был у меня пример. Если найду - выложу. Это сообщение отредактировал(а) artsb - 10.1.2010, 14:49 -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 1 Всего: 64 |
Вот нашёл пример (другой правда) - здесь.
Замечание: если форме задать стиль WS_EX_LAYERED, то все контролы придётся отрисовывать вручную Как вариант, вместо отрисовки, можно создать дополнительную форму с полностью прозрачным фоном, разместить на ней компоненты и всегда "держать" её поверх формы с PNG фоном. Тут придётся повозиться. -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| AntonN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: 7 Всего: 18 |
ищите по слову UpdatelayredWindow, примеры: http://forum.vingrad.ru/forum/topic-194182...y1400262/0.html
|
|||
|
||||
| Attack |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 20.7.2006 Репутация: нет Всего: нет |
Спасибо, попробую. А может быть есть какой-нибудь маленький компонент, который это делает?
|
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 1 Всего: 64 |
Я о таком не слышал. Единственное, Alpha Skins -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| AntonN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: 7 Всего: 18 |
да, есть, например такой http://kladovka.net.ru/index.cgi?pid=list&rid=340 но вынужден огорчить, что обычные контролы сами не рисуются на такой форме, их нужно рисовать самому, и тут начинаются проблемы с теми контролами, которые рисует система (например поля ввода) |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 1 Всего: 64 |
Я где-то видел пример выхода из этой ситуации, описанным мною выше способом. Так что выкрутиться можно -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Есть такая идея, воспользоваться режимом двойной буферизации, т.е. в финальном варианте рисовать битмап не на канву, а обновлять слой. Если кто-то возьмется проработать сообщите результаты -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| AntonN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: 7 Всего: 18 |
я сколько не спрашивал - мне никто так и не сказал, как Tmemo заставить рисоваться не на канву на чем она лежит, а на канву битмапа. Так, чтобы рисовались выделения текста, рисовалась каретка. http://www.rsdn.ru/forum/delphi/2362380.aspx я на это убил практически года, буду рад если даже сейчас мне расскажут что и как |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
По идее каретку рисует ксором система. При этом WM_PAINT не вызывается. Контрол с фокусом можно отрывать от поверхности формы, как только он потеряет фокус возвращать на место, ну или клонировать. Кстати миранда умеет делать скины с градиентной прозрачностью, можешь исследовать ее -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |