|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.08.2015, 12:02 | #21 |
Пользователь
Регистрация: 08.07.2015
Сообщений: 21
|
ResourceSpace, у меня получилось выводить PNG-картинку, чтобы она просвечивала рабочий стол (см. пост #8 - сейчас удалось получить нарисованное, но только как единое целое, а не как два разных изображения):
Код:
Последний раз редактировалось Bruce Wayne; 04.08.2015 в 12:06. |
04.08.2015, 12:28 | #22 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Вынести отрисовку в отдельный метод.
Вызывать нужное число раз. Может стоит посмотреть в сторону этой функции: https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx Последний раз редактировалось waleri; 04.08.2015 в 12:31. |
04.08.2015, 12:35 | #23 |
Пользователь
Регистрация: 08.07.2015
Сообщений: 21
|
waleri, а можно пример с первым случаем (отрисовкой), если не сложно? Просто я не понимаю, что Вы имеете в виду, ведь нужно поверх основного PNG-изображения отображать/скрывать другие PNG-картинки...
Последний раз редактировалось Bruce Wayne; 04.08.2015 в 13:12. |
05.08.2015, 06:36 | #24 |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
Прости, прозевал сообщение, только сейчас увидел. Незнакомый компонент, проверь что будет: если так или так делать будет затирать альфу?:
Код:
Код:
Код:
|
05.08.2015, 08:31 | #25 |
Пользователь
Регистрация: 08.07.2015
Сообщений: 21
|
ResourceSpace, спасибо Вам ОГРОМНОЕ! (в приведённом коде буквально чуть-чуть поправить нужно было) И всем-всем, кто помогал и принимал участие! Всё получилось Вот конечный вариант:
Код:
Последний раз редактировалось Bruce Wayne; 05.08.2015 в 08:40. |
05.08.2015, 21:47 | #26 | |
Пользователь
Регистрация: 08.07.2015
Сообщений: 21
|
Цитата:
Последний раз редактировалось Bruce Wayne; 05.08.2015 в 21:58. |
|
09.08.2015, 12:38 | #27 |
Пользователь
Регистрация: 08.07.2015
Сообщений: 21
|
Единственная странность в том, что вся форма "мигает" (пропадает и тут же появляется) в процессе перерисовки не из FormCreate... Я стал загружать все изображения заранее, чтобы этого избежать, но появилась другая проблема: если выполнять отрисовку в цикле с задержкой в 200 мс для получения эффекта анимации, то при перемещении курсора по форме или при её перетаскивании становятся полностью невидимыми все уже загруженные картинки, кроме последней нарисованной, причём повторная отрисовка не помогает
Если же форму и курсор не перемещать, то всё отображается нормально. Свойство DoubleBuffered не помогает. Если не загружать картинки в память заранее, то в цикле получается сильно бросающееся в глаза "мигание" всей формы. Как можно от этого избавиться? Уже всё перепробовал... |
09.08.2015, 12:49 | #28 |
Пользователь
Регистрация: 08.07.2015
Сообщений: 21
|
Фухх... Отбой - уже в который раз ситуацию спасают таймеры Использовал их вместо цикла, проблема решена, простите за ложную тревогу...
|
09.08.2015, 13:06 | #29 |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
Ни в коем случае никаких циклов, очередь сообщений и так цикл.
Свойство DoubleBuffered не работает для Layered. Окно Layered не получает сообщений перерисовки и не использует рисования на окне. Да и сам Layered по сути уже тот же DoubleBuffered. |
09.08.2015, 18:14 | #30 |
Пользователь
Регистрация: 08.07.2015
Сообщений: 21
|
ResourceSpace, спасибо большое за информацию! Век живи, век учись
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
AlphaBlend: наложить bmp на jpg или наоборот | fredwriter | Помощь студентам | 2 | 17.09.2012 19:28 |
Полупрозрачный DIV | X@OC | HTML и CSS | 3 | 18.04.2011 08:54 |
полупрозрачный слой | voldemen | HTML и CSS | 1 | 14.09.2010 22:14 |
Добавить точечному рисунку альфа канал, что бы рисунок воспринимался функцией AlphaBlend | Son | Мультимедиа в Delphi | 3 | 11.02.2010 16:46 |
Как наложить полупрозрачный рисунок поверх видео. | jocry | Мультимедиа в Delphi | 3 | 03.11.2009 09:22 |