Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прозрачный TPanel 
:(
    Опции темы
mr.Anderson
Дата 17.4.2007, 17:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



Подождите гнать меня в поиск! Я там был... Нашел, как делать форму прозрачной (а как просто-то, оказывается). Нашел, как вытворять всевозможные эффекты с TImage. А как можно сделать TImage полупрозрачным? Эффекты через AlphaFX делать можно, но как полупрозрачным его сделать?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Klin
Дата 17.4.2007, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(mr.Anderson @  17.4.2007,  18:56 Найти цитируемый пост)
 А как можно сделать TImage полупрозрачным? 

Не понял, так тебе TPanel или TImage полупрлзрачный надо?


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
mr.Anderson
Дата 17.4.2007, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



Да в принципе какая разница. Смысл: на панели лежит имейдж и на нем написан текст (через TLabel). Нужно, чтобы TLabel остался нормальной контрастности, а вот TImage стал бледнее. Естественно, нужно, чтобы уровень прозрачности можно было регулировать.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Klin
Дата 17.4.2007, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(mr.Anderson @  17.4.2007,  19:06 Найти цитируемый пост)
Да в принципе какая разница. 

Здрасти, у Image есть transparent у Panel нет. А в принципе,  проблема или через Canvas решается или рисунок можно использовать GIF и там уровень прозрачности сделать.


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
SenkraD
Дата 17.4.2007, 18:09 (ссылка) |  (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

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



Если TPanel, то возможно так (мож надо ещё форме прозрачность разрешить)
Код

    SetWindowlong(Panel1->Handle, GWL_EXSTYLE,
        GetWindowLong(Panel1->Handle, GWL_EXSTYLE) & ~WS_EX_LAYERED);
    SetWindowlong(Panel1->Handle, GWL_EXSTYLE,
        GetWindowLong(Panel1->Handle, GWL_EXSTYLE) | WS_EX_LAYERED);
    SetLayeredWindowAttributes(Panel1->Handle, 0, 125, LWA_ALPHA);



--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Klin
Дата 17.4.2007, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Нет, ему не весь же надо исправить. Можно так сделать. У рисунка есть цвет прозрачности, этим цветом через Canvas сделать на нем "решетку" из мелких точек и получиться эфект прозрачности, хотя если способ SenkraD, и на рисунок использовать можно, то лучше сделать как предлагает он.


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
mr.Anderson
Дата 17.4.2007, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



Klin, Transparent - это не совсем то. Транспарент поможет только обрезать границы у BMP-картинки (кстати, он плоховато это делает). А мне нужно весь рисунок сделать полупрозрачным, а не только границы обрезать.

SenkraD, попробую, спасибо, но и впрямь похоже надо TImage сделать прозрачным, а не панель... Чего-то я ступил. smile


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Klin
Дата 17.4.2007, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



только этот способ под 98 работать не будет :(


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
mr.Anderson
Дата 17.4.2007, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



Да и фиг с ним в принципе. smile


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Klin
Дата 17.4.2007, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(mr.Anderson @  17.4.2007,  19:14 Найти цитируемый пост)
Транспарент поможет только обрезать границы у BMP-картинки

На Jpeg вообще-то  тоже работает. Но я говорил сделать в редакторе GIF и ему прозрачность назначить и тогда Transparent будет не края резать, а прозрачность изменять (сам проверял)


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
mr.Anderson
Дата 17.4.2007, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



Стоп-стоп... Как это сделать для TImage, если у него нет хендла?

Добавлено через 43 секунды
Klin, можно с этого места поподробнее? Что значит "сделать в редакторе GIF и ему прозрачность назначить"


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Klin
Дата 17.4.2007, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



гы-гы у Image Handle нет smile

Добавлено через 40 секунд
блин опередил, щас напишу


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
mr.Anderson
Дата 17.4.2007, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



Klin, а я о чем? smile

Добавлено через 36 секунд
smile Тут у на тренировка на скорость печати... Сорри за оффтопик...


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Klin
Дата 17.4.2007, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Точно по действия не помню, но примерно так:
1) Создаешь нужный рисунок
2) Накладываешь на него к примеру фиолетовый
3) Изменяешь прозрачность фиолетового на глаз
4) Сохраняешь его как GIF с прозрачным фиолетовым

Вроде все, но там в свойствах его (при сохранении) должно быть что-то типа "Indefie ?". 


p.s. Я думаю, что с хэндлом че-нибудь придумать можно....


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
mr.Anderson
Дата 17.4.2007, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



И лучше именно это что-нить придумать, т.к. с рисунком я так и не понял толком, чего делать. smile Еще варианты есть? Плз.

Добавлено через 5 минут и 53 секунды
Кстати,метод не сработал даже с панелью (WinXP).


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
mr.Anderson
Дата 17.4.2007, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



Вопрос актуален.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Klin
Дата 18.4.2007, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Пытался попробовать со способом SenkraD`а, но пока изменить могу только окно. Кстати у Image (почти у него) хэндл есть:
Код

Image1->Picture->Bitmap->Handle;

Почти получилось с другим вариантом, но он делает его полностью прозрачным


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
SparF
Дата 5.9.2007, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 387
Регистрация: 14.9.2006
Где: Санкт-Петербург/М осква

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



Цитата(SenkraD @  17.4.2007,  18:09 Найти цитируемый пост)
Если TPanel, то возможно так (мож надо ещё форме прозрачность разрешить)
Код

    SetWindowlong(Panel1->Handle, GWL_EXSTYLE,
        GetWindowLong(Panel1->Handle, GWL_EXSTYLE) & ~WS_EX_LAYERED);
    SetWindowlong(Panel1->Handle, GWL_EXSTYLE,
        GetWindowLong(Panel1->Handle, GWL_EXSTYLE) | WS_EX_LAYERED);
    SetLayeredWindowAttributes(Panel1->Handle, 0, 125, LWA_ALPHA);


Попробовал так, что-то ноль реакции - есть какие-нть предположения, что можно сделать?  smile

Добавлено через 4 минуты и 23 секунды
Добавлю  - нужен полностью прозрачный TPanel (под ним будет картинка, а на нем - кнопки двигаются графические, так вот картинку при текущем раскладе под панелью совсем не видно)....



--------------------
Люди, не пользуйтесь пиратским программным обеспечением - переходите на Linux!
PM MAIL ICQ   Вверх
Alexeis
Дата 6.9.2007, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


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

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



Цитата(SparF @  5.9.2007,  23:40 Найти цитируемый пост)
Попробовал так, что-то ноль реакции - есть какие-нть предположения, что можно сделать? 

  И не удивительно, если внимательно читать справку, то слои можно устанавливать только парент окну, но не чайлду. Что-то подобное можно сделать, если использовать 2 формы. 1я дырявая (видны только компоненты) у нее своя прозрачность, а вторая пустая форма с другой прозрачностью расположена ниже этой дырявой формы. В разделе по делфи мы уже испробовали этот вариант. Работает довольно стабильно, правда на слабых машинах такое окошко хорошо притормаживает при перемещении. Но это все равно только 2 прозрачности. Чтобы установить каждому нужно каждый контрол поместить на свою форму smile


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

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

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 387
Регистрация: 14.9.2006
Где: Санкт-Петербург/М осква

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



Цитата(Alexeis @  6.9.2007,  00:09 Найти цитируемый пост)
Чтобы установить каждому нужно каждый контрол поместить на свою форму

Изврат однако))))))))))))))
тогда поставлю вопрос по другому (надеюсь за оффтоп не примут)
Как еще можно несложно добиться эффекта появления движущейся кнопки из-за невидимой черты (кнопки двигаются в пределах невидимого/прозрачного прямоугольника на форме, что-то вроде бегущей строки из кнопок)
PS заранее спасибо.


--------------------
Люди, не пользуйтесь пиратским программным обеспечением - переходите на Linux!
PM MAIL ICQ   Вверх
Alexeis
Дата 6.9.2007, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


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

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



Выползать из под панели и заползать под другую панель. Панели не имеет бордюра.

Добавлено через 1 минуту и 31 секунду
Для этого нужно всего лишь установить им правильный z order.


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

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

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 387
Регистрация: 14.9.2006
Где: Санкт-Петербург/М осква

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



Цитата(Alexeis @  6.9.2007,  00:42 Найти цитируемый пост)
Выползать из под панели и заползать под другую панель. Панели не имеет бордюра

Да, пожалуй, это единственный вариант.
Alexeis, спасибо)))))

Добавлено через 1 минуту и 36 секунд
....правда в этом случае не будет видна фоновая картинка формы.... =(

Добавлено через 7 минут и 33 секунды
....мда...по-человечески походу никак, придется дробить картинку на несколько частей, и части по бокам формы делать выше кнопок...


--------------------
Люди, не пользуйтесь пиратским программным обеспечением - переходите на Linux!
PM MAIL ICQ   Вверх
Alexeis
Дата 6.9.2007, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


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

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



  Тогда можно вообще отказаться от панелей и переопределить перерисовку движущейся кнопки. В нужный момент (по OnPaint) просто рисовать фрагмент фоновой картинки на кнопке.


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

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

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

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

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

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


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

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


 




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


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

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