|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.12.2014, 05:47 | #1 |
Пользователь
Регистрация: 15.11.2014
Сообщений: 75
|
Анимированный маркер на TImage
Привет.
Необходимо поместить два анимированных маркера на крупную картинку (схема большого размера). Что есть: - гиф с маркером в виде вращающихся кусочков кольца размером 32*32 пикселя (но не проблема на кадры нарезать, если нужно); - крупная картинка (TImage) на TScroolBox, на которую нужно наложить анимированный маркер, при этом саму картинку можно перемещать (т.е. маркер может оказаться за пределами видимости); - фотошоп, делфи 2007 (который не умеет работать с пнг форматом). И все было бы хорошо, но проблема в том, что при выставлении прозрачности фона гифки в true, задний фон не перерисовывается. Он остается таким, какой был при старте программы. При этом большая картинка может масштабироваться пользователем, но маркер должен оставаться в своем первоначальном размере (координаты гифки пересчитываются в зависимости от зума схемы). Repaint гифки ничего не дает - фон не перерисовывается. Установка вручную img.ControlStyle:=img.ControlStyle+[csOpaque] тоже бесполезна. Поскольку с ходу я простого решения не нашел, то вижу несколько путей: 1. Искать в TGIFImage процедуру отрисовки и править (глюк?). 2. Использовать таймер и TImageList с загруженными кадрами анимации, которые отрисовывать на TPaintBox'е, наложенном поверх той самой схемы. Далее идет еще несколько бредовых вариантов, которые озвучивать не буду, хоть и не против поднять настроение, но не ценой выглядеть в чьих-то глазах полным извращенцем и любителем изобретать костыли для вполне здорового кода )) Итак, что посоветуете? Вполне вероятно, что я не знаю чего-то простого и задуманного эмбаркодеровцами как единственно правильного. Фон у того же TLabel отрисовывается просто на ура. А что не так с гифкой в TImage? |
04.12.2014, 07:47 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Хм... Наверно я бы попробовал еще два пути:
1) Поставить Делфи поновее, всетки 2007-ка устарела. Да и оплотом надежности она не являлась 2) Использовать GDI+ для рисования. Это значит - TImage фтопку, писать свою отрисовку с нуля.
I'm learning to live...
|
04.12.2014, 13:36 | #3 |
Форумчанин
Регистрация: 27.10.2014
Сообщений: 594
|
Что такое "анимированный маркер"?
Если это - анимированный курсор, то какие трудности??? Создайте нужный вам анимированный курсор и подключайте его в своей программе. Создайте их несколько и меняйте в программе когда хотите и как хотите. |
04.12.2014, 13:47 | #4 | |
Форумчанин
Регистрация: 05.10.2007
Сообщений: 478
|
Цитата:
|
|
04.12.2014, 15:32 | #5 |
Форумчанин
Регистрация: 27.10.2014
Сообщений: 594
|
Я так и не поняла, что имеется в виду под словом "маркер". Ответа от ТС нет.
Я не понимаю, что такое "как бы нет". Не понимаю выражений типа "она как бы моя мать", " я её как бы люблю", "я как бы программист", "мне это как бы нужно" и проч. В русском языке словосочетание "как бы" равносильно слову "приблизительно". Теперь подумайте, что вы написали... Чем ТС собирается управлять "двумя маркерами"??? Ему удалось подключить к компу две независимые мыши? Он собирается управлять вторым курсором с помощью клавиш? Кто-нибудь способен поставить задачу так, чтобы не пришлось фантазировать или вызывать медиумов? |
04.12.2014, 15:46 | #6 | |
Форумчанин
Регистрация: 05.10.2007
Сообщений: 478
|
Цитата:
|
|
04.12.2014, 16:18 | #7 | |||||
Пользователь
Регистрация: 15.11.2014
Сообщений: 75
|
Цитата:
Цитата:
Стараюсь не пользоваться такими формулировками, но в данном контексте эти слова имеют оттенок неуверенности. Управлять по большей части программа будет. Координаты выставляются программно. Цитата:
Цитата:
Цитата:
Последний раз редактировалось exyl; 04.12.2014 в 16:20. |
|||||
04.12.2014, 16:37 | #8 |
Форумчанин
Регистрация: 27.10.2014
Сообщений: 594
|
Теперь понятно.
У меня сработал стереотип... Если бы вместо "крупная картинка" было использовано слово "карта" и хотя бы один раз использовалось слово "маршрут" (или, на худой конец, "путь"), тогда бы вопросы отпали... |
04.12.2014, 16:38 | #9 |
Форумчанин
Регистрация: 05.10.2007
Сообщений: 478
|
Попробовал на 2007 под гифкой картинку потаскать - нормально перерисовывается фон. Жаль только, что анимация не поддерживается.
|
04.12.2014, 16:54 | #10 | |
Форумчанин
Регистрация: 27.10.2014
Сообщений: 594
|
Цитата:
1. Отказаться от гифов и использовать простенькую последовательность бээмпэшек (ещё лучше - джипежек)? (что по сути - одно и то же) хоть по таймеру... 2. И тогда в момент смены кадра "анимации" что-то вроде: Код:
Но в любом случае совершенно необязательно обеспечивать абсолютно плавную регулировку "прозрачности" с шагом 1%. Можно сделать 4 варианта с шагом 25% с размытием площади маркера - тогда отпадёт необходимость бороться за прорисовку фона Последний раз редактировалось kropotkina-alice; 04.12.2014 в 16:58. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Анимированный осцилограф на WinAPI (С++) | oleg kutkov | Общие вопросы C/C++ | 36 | 26.02.2014 22:39 |
Маркер в Chart | Viktooor | Общие вопросы Delphi | 0 | 23.05.2012 17:40 |
Не правильно работает маркер заполнения | leric | Microsoft Office Excel | 2 | 13.02.2010 16:29 |
Анимированный фон | Delph1n | Мультимедиа в Delphi | 11 | 31.01.2009 14:47 |
Маркер | Патрон | Общие вопросы Delphi | 4 | 14.04.2008 21:45 |