Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

PNG на форме... [D7, WinXP]


capkoh ©   (2005-03-03 22:42:00) 

Мне интересно, можно ли вместо формы использовать полупрозрачное (с альфа-каналом) изображение, (как заставки у Acrobat Professional 6 сверху, CorelDraw 12)? Т.е. нужно нарисовать на форме прозрачное изображение так, чтобы был виден рабочий стол или окно под данным окном в местах прозрачности изображения. PNG позволяет добиться хорошей сглаженности углов изображения и отлично смотрится как окно заставки. Нарисовать довольно просто, но как быть если под такое окно затащили другое окно? При этом если просто перерисовать картинку происходит наложение 'альфа-каналов' и былые прозрачные места/границы становятся менее и менее прозрачными.


  (2005-03-14 16:07:00) [1]

Удалено модератором


capkoh   (2005-03-13 14:20:00) [2]

Похоже, это то, что мне нужно!


  (2005-03-07 22:24:00) [3]

Удалено модератором
Примечание: Наверное, поле "ник" для ника и предназначено?


Gero   (2005-03-07 18:17:00) [4]


> capkoh   (07.03.05 17:58)

Пересмотри логику работы.
Ошибки можно записывать в лог и только после окончания загрузки показывать.


capkoh   (2005-03-07 17:58:00) [5]

Нет, появляются мои ошибки, например: конфигурационный файл не найден, необходимые для работы файлы не найдены...


Fenik   (2005-03-07 17:41:00) [6]

Неужто так долго грузится твоя программа, что чьи-то ошибки успевают появляться?


capkoh   (2005-03-07 15:08:00) [7]

2Gero: Все дело в ошибках, когда они вылезают: возможно переключиться на другое окно и подвигать его. В том случае, если оно (окно) изначально было под картинкой, то часть его скопитуется на картинку. Теперь (во время ошибки) полученное изображние на картинке остается, а background изменяется (движение окна) не влияя на прозрачные области...
Но я обошел (не решил) эту проблемму: просто скрываю картинку во время ошибки.


Tirex   (2005-03-06 23:28:00) [8]

можно кусок кода посмотреть как рисуешь?


Gero   (2005-03-06 19:40:00) [9]


> capkoh   (06.03.05 18:21)

Чем тебя алгоритм, предложенный в [1] не устраивает?


capkoh   (2005-03-06 18:21:00) [10]

О "старушках" здесь речь не идет...


Sphinx   (2005-03-06 17:38:00) [11]

> Да, он и есть (он равен Form.Color в нашем случае, чтобы
> сделать прозрачность формы).

Дык это будет работать толькопод Win2000 и WinXP, под старушками 9х будет серая форма...


capkoh   (2005-03-06 15:55:00) [12]

Да, он и есть (он равен Form.Color в нашем случае, чтобы сделать прозрачность формы).


Gero   (2005-03-06 14:25:00) [13]


> накладываются на цвет формы (тот, что прозрачный), а не
> на то, что сейчас видно "сквозь" форму

Что значит «цвет формы (тот, что прозрачный)»?
TForm.TransparentColor?


capkoh   (2005-03-06 14:01:00) [14]

Вручную, рисует хорошо. Можно на рабочий стол, а можно на любой компонент. Но опять же, если задать компоненту прозрачный цвет (скажем, у формы), то при рисовании на ней, те пиксели, которые с альфа-каналом, накладываются на цвет формы (тот, что прозрачный), а не на то, что сейчас видно "сквозь" форму...

Это как, на кнопки? Там же из ImageList'а, а он их масштабирует, к тому же только иконки понимает и bmp...


Tirex   (2005-03-05 15:30:00) [15]

можно поинтересоваться как рисовали png(компонент, вручную)?
случайно не пробовали png на кнопки toolbar'a добавлять?


capkoh   (2005-03-05 14:54:00) [16]

Это мне нужно потому, что во время загрузки могут появиться MessageBox'ы, и вот тогда-то и получается ерунда!


capkoh   (2005-03-05 14:53:00) [17]

Вот мне то как раз и нужно как-то обновить картинку (точнее, те области которые прозрачные, если под ними появилось другое окно)! Нарисовать-то правильно я ее смог, прозрачная. А вот с обновлением проблема.


Gero   (2005-03-04 23:06:00) [18]


> как быть если под такое окно затащили другое окно?

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


Gero   (2005-03-04 23:05:00) [19]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо