![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]До создания формы получаешь картинку, которая должна быть под ней, рисуешь эту картинку на форме, а поверх — свое прозрачное изображение.