Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Полупрозрачное окно


Автор: HackMan 22.2.2007, 03:28
Хочу сделать наполовину прозрачное окно. То есть что бы, например, рамки этого окна были полупрозрачными,а центр окошка - нет. Вобщем, как это выглядит в Vista (или Miranda smile ). Как это проще всего реализовать? smile

Автор: Alexeyt 26.2.2007, 16:27
Проще всего сделать окно custom формы. Например, не прямоугольное.
А прозрачность, только по бокам а не в центре - это, AFAIK, нельзя вообще (не под Vista).

Автор: HackMan 26.2.2007, 16:31
Как нельзя?  smile  Взгляни на Miranda Kuzzman Edition. Там это всё реализовано и работает даже наверное под 95 виндой  smile 
Наверняка они там с прозрачными Png наделали.. Интересно вот, как это у них всё работает..

Добавлено
Ещё можно взглянуть на Yahoo! Widget Engine

Автор: Moid 27.2.2007, 12:59
Можно сделать к примеру так:

1) У формы ставим TransperentColor = true;
Цвет прозрачности ставим в цвет формы
2) Свойство бордюров в форме ставим в bsNone

В итоге после компиляции получится, что проект выполняется, но формы не видно.

3) Кидаем на форму компонент Image, в него загружаем картинку. Предварительно у картинки по  "точечным роспрыском"(в фотошопе или подобной программе) заливаем края, таким образом, чтобы края были полностью залиты цветом(нужно брать цвет которого НЕТ на картинке), а на некотором расстоянии от края уменьшалось постоянно до полного исчезновения.

4) Потом у компонента Image делаешь TransperentColor = true;

Компилишь и получается, то что ты хотел... Все конечно зависит от того на сколько плавно будет переходить цвет заливки от края к центру.

Автор: Rodman 27.2.2007, 17:35
HackMan, http://forum.vingrad.ru/act-Search/CODE/show/searchid-fee3dcfbe3bafe95da42d104a5d17e8e/search_in-posts/result_type/topics/flag/search/highlite/%25EF%25F0%25EE%25E7%25F0%25E0%25F7%25ED%25E0%25FF+and+%25F4%25EE%25F0%25EC%25E0/index.html рулит...

и в DRKB такое есть...

Автор: HackMan 28.2.2007, 01:53
Долго искал... Все решения из поиска сводятся к 
Код

  TransparentColorValue := clWhite;
  TransarentColor := True;

Но это просто убирает с формы участки с белым цветом. То есть если я кину на форму PNG с альфаканалом, можно не мечтать о том что через этот альфаканал я увижу что происходит под окном, а только увижу кусок формы через прозрачную часть изображения...

Ещё предложения?

Автор: bems 28.2.2007, 02:13
Цитата(HackMan @  26.2.2007,  16:31 Найти цитируемый пост)
Там это всё реализовано и работает даже наверное под 95 виндой   
Нет, под 95 не работает. Но начиная с 2000 есть слоистые окна 
А) с прозрачным цветом или процентом прозрачности
Б) с битмапом, имеющим для каждой точки свою прозрачность. (смотри UpdateLayeredWindow) - это то, что нужно

Автор: HackMan 28.2.2007, 03:57
Всем спасибо, вопрос решён!  smile 
Вобщем, делаю слоистое  smile окошко и вручную на нём прорисовываю мою PNG smile
Единственное, что приходится отрисовывать все контролы вручную smile

Автор: Serg89 22.5.2007, 16:37
можно юзнуть файл расширения ico в нем то же все 256 уровней прозрачности... я не юзаю платные компоненты для отображения png в делфи проектах... но если использовании иконок тебе придется резать их на определенные куски так как в данном формате возможно максимальное разрешение 255х255 smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)