Текущий архив: 2005.07.11;
Скачать: CL | DM;
ВнизPNG на форме... Найти похожие ветки
← →
capkoh (2005-03-03 22:42) [0]Мне интересно, можно ли вместо формы использовать полупрозрачное (с альфа-каналом) изображение, (как заставки у Acrobat Professional 6 сверху, CorelDraw 12)? Т.е. нужно нарисовать на форме прозрачное изображение так, чтобы был виден рабочий стол или окно под данным окном в местах прозрачности изображения. PNG позволяет добиться хорошей сглаженности углов изображения и отлично смотрится как окно заставки. Нарисовать довольно просто, но как быть если под такое окно затащили другое окно? При этом если просто перерисовать картинку происходит наложение "альфа-каналов" и былые прозрачные места/границы становятся менее и менее прозрачными.
← →
Gero © (2005-03-04 23:05) [1]До создания формы получаешь картинку, которая должна быть под ней, рисуешь эту картинку на форме, а поверх — свое прозрачное изображение.
← →
Gero © (2005-03-04 23:06) [2]
> как быть если под такое окно затащили другое окно?
Вот поэтому такой прием кроме как в заставках, которые модальные, нигде больше не используется.
← →
capkoh (2005-03-05 14:53) [3]Вот мне то как раз и нужно как-то обновить картинку (точнее, те области которые прозрачные, если под ними появилось другое окно)! Нарисовать-то правильно я ее смог, прозрачная. А вот с обновлением проблема.
← →
capkoh (2005-03-05 14:54) [4]Это мне нужно потому, что во время загрузки могут появиться MessageBox"ы, и вот тогда-то и получается ерунда!
← →
Tirex (2005-03-05 15:30) [5]можно поинтересоваться как рисовали png(компонент, вручную)?
случайно не пробовали png на кнопки toolbar"a добавлять?
← →
capkoh (2005-03-06 14:01) [6]Вручную, рисует хорошо. Можно на рабочий стол, а можно на любой компонент. Но опять же, если задать компоненту прозрачный цвет (скажем, у формы), то при рисовании на ней, те пиксели, которые с альфа-каналом, накладываются на цвет формы (тот, что прозрачный), а не на то, что сейчас видно "сквозь" форму...
Это как, на кнопки? Там же из ImageList"а, а он их масштабирует, к тому же только иконки понимает и bmp...
← →
Gero © (2005-03-06 14:25) [7]
> накладываются на цвет формы (тот, что прозрачный), а не
> на то, что сейчас видно "сквозь" форму
Что значит «цвет формы (тот, что прозрачный)»?
TForm.TransparentColor?
← →
capkoh (2005-03-06 15:55) [8]Да, он и есть (он равен Form.Color в нашем случае, чтобы сделать прозрачность формы).
← →
Sphinx © (2005-03-06 17:38) [9]> Да, он и есть (он равен Form.Color в нашем случае, чтобы
> сделать прозрачность формы).
Дык это будет работать только под Win2000 и WinXP, под старушками 9х будет серая форма...
← →
capkoh (2005-03-06 18:21) [10]О "старушках" здесь речь не идет...
← →
Gero © (2005-03-06 19:40) [11]
> capkoh (06.03.05 18:21)
Чем тебя алгоритм, предложенный в [1] не устраивает?
← →
Tirex (2005-03-06 23:28) [12]можно кусок кода посмотреть как рисуешь?
← →
capkoh (2005-03-07 15:08) [13]2Gero: Все дело в ошибках, когда они вылезают: возможно переключиться на другое окно и подвигать его. В том случае, если оно (окно) изначально было под картинкой, то часть его скопитуется на картинку. Теперь (во время ошибки) полученное изображние на картинке остается, а background изменяется (движение окна) не влияя на прозрачные области...
Но я обошел (не решил) эту проблемму: просто скрываю картинку во время ошибки.
← →
Fenik (2005-03-07 17:41) [14]Неужто так долго грузится твоя программа, что чьи-то ошибки успевают появляться?
← →
capkoh (2005-03-07 17:58) [15]Нет, появляются мои ошибки, например: конфигурационный файл не найден, необходимые для работы файлы не найдены...
← →
Gero © (2005-03-07 18:17) [16]
> capkoh (07.03.05 17:58)
Пересмотри логику работы.
Ошибки можно записывать в лог и только после окончания загрузки показывать.
← →
имя (2005-03-07 22:24) [17]Удалено модератором
Примечание: Наверное, поле "ник" для ника и предназначено?
← →
capkoh (2005-03-13 14:20) [18]Похоже, это то, что мне нужно!
← →
имя (2005-03-14 16:07) [19]Удалено модератором
Страницы: 1 вся ветка
Текущий архив: 2005.07.11;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.041 c