![]() |
|
![]() ![]() ![]() |
|
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: 2 Всего: 2 |
Всем доброго времени суток! Ребята подскажите пожалуйста как можно анимировать картинку? Скажем когда я навожу на Имадж1 чтобы запускалась анимация, отвожу - выключалась.
![]() |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Я бы сделал так:
Разместил бы на форме панель, на нее - TAnimate. Последняя невидима и неактивна. В панели отлавливаю мышь. Попала мышь на панель - включаю TAnimate. С выключением сложнее - надо ловить мышь на том контроле, которому панель принадлежит (потому, как панель TAnimate перекроет). Если бы TAnimate мышь ловила было бы немного проще - потеряла мышь - выключилась. Но это дело техники, на самом деле. Добавлено через 34 секунды Читаю эту фразу и смеюсь - во как жизнь несчастную мышь допекла ![]() |
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: 2 Всего: 2 |
Если по вашему принципу то ничего сложного ;) просто вы забыли о OnMouseEnter OnMouseLive . Вот и на этом можно построить... но дело в том что я хочу Gif =) . А Анимейт поддерживает только видео.
Помню на делфи я делал так:
Вроде так... но дело в том что тут понадобится файл из вне =) а я хочу чтобы программа обошлась без всего этого =) |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Я не знаю, поддерживает ли 2009 Gif. Шестерка точно не поддерживала. Если есть компоненты для работы с Gif - то можно. Но меня терзают смутные сомнения, что Gif так и остался платным форматом (что-то такое слышал) и открывать лицензию не хотят. Из этого вытекают соответствующие проблемы.
Перегнать Gif в AVI я вроде где-то видел какие-то конверторы. В общем не суть - если у вас получится на AVI - следующим ходом ищите Gif-компонент. Хотя, если честно, не получиться просто не может - реально 4 строки введенного вручную кода (не считая имен файлов проекта и компонентов). |
|||
|
||||
THandle |
|
|||
![]() Хранитель Клуба ![]() Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 25 Всего: 372 |
||||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: 2 Всего: 2 |
Аааааа ребята =) я знаю =) Начиная с 2007 РАДа включена поддержка анимации и гифов (в РАД 2009 даже пнг есть) . Я просто не знаю как запустить анимацию :( подскажите пожалуйста...
|
|||
|
||||
Anikmar |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Поделитесь, как? Компонент RxLib не в счет. Именно TImage? У меня ничего не получилось. Грузит успешно только первый кадр, анимацию не поддерживает. Единственный метод, с помощью которого я заставил TImage работать с gif выглядел примерно так: По нажатию кнопки запуска загружаю gif:
Считываю количество кадров, запускаю таймер. В обработчике таймера рисую кадр:
Метод идиотский, как и идиотский (в своем духе) хелп у борланда. Если TImage в Design-mode позволяет загрузить gif и честно пишет, что объект TGIFImage загружен, ну почему по нему нет ни строчки хелпа?! Сам класс определяется с ним можно работать - но изучай по прототипу и все тут. Уроды, одним словом. Тем не менее мой метод вижу дурацким. Слишком сильно мерцание. Резюме: TImage не рисует gif (нормально), и тем более не анимирует. ИМХО. Либо моего терпения на шастанье в потемках билдер-"хелпа" не хватило. RxLib наверное будет работать, но я ее не ставил и не проверял. ![]() Эх, соединить бы среду билдера с хелпом студии - цены не было бы продукту. (ИМХО) |
||||
|
|||||
SVN74 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 5.5.2008 Где: Комсомольск на Дн епре Репутация: 11 Всего: 18 |
Вот готовый (рабочий) примерчик для C++Builder 2009
=========================================
|
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
||||
|
||||
SVN74 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 5.5.2008 Где: Комсомольск на Дн епре Репутация: 11 Всего: 18 |
||||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: 2 Всего: 2 |
Аааааааа РЕБЯТА! Я же говорю всё намного проще! =) Кто то хоть смотрел на код что я привел? В Делфи? Просто синтаксис себе поменяйте.
=) всё намного проще =) Ребята только мне не надо лод фром файл. Мне надо чтобы он грузился с ехе... аля с ресурсов... помогите пожалуйста ![]() |
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: 2 Всего: 2 |
Ребята. Подскажите пожалуйста ))) как же мне всё это грузить из ресурсов? =) Заранее очень благодарен!
|
|||
|
||||
THandle |
|
|||
![]() Хранитель Клуба ![]() Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 25 Всего: 372 |
Kirgston, что все? Картинки? Так ведь тем полно...
Вот например: http://forum.vingrad.ru/forum/topic-243185/unread-1.html |
|||
|
||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
-------------------- |
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: 2 Всего: 2 |
Ой тьфу... закрутился со всем этим и ... вообщем извините
![]() |
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: 2 Всего: 2 |
Еххх.... кажется всё сделал... сделал очень хитро =) но тут беда...
Вообщем код такой:
Итак скажем результат должен быть простой. Я сначала гружу в Имаж1 картинку, затем если я наведу мышкой на картинку она должна как бы анимироваться... ну анимация идет только очень медленная (АнимейшенСпиид не помогает) ... после того как я отвожу курсор останавливается... но как навожу второй раз то... картинка и программа просто зависают... Такое впечатление что борланд просто "гробит" картинку... просто если грузить с файла то всё ок, если же с компонента то всё глючит... Есть какие то идеи? ![]() |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
А необходимо при каждом событии мышки создавать/удалять картинку? Этих событий приходит десятки в секунду, может как-то вынести переменную в форму? |
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: 2 Всего: 2 |
А почему десятки в секунду? Это событие вызывается как только курсор "наехал" на картинку =) когда он "ходит" по картинке это событие не вызывается.
Ну... щас попробую в глобальную перенести =) . Пасибки =) Добавлено через 9 минут и 5 секунд Попробовал... ничего... как глючило так и глючит... |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Я вообще подход с перназначением картинки по мышке не понимаю.
Один раз настраиваем картинку, а по событию мышки включаем/выключаем анимацию. Если нужно, чтобы без мышки картинка гасла - то можно сбрасывать свойство visible... |
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: 2 Всего: 2 |
Ну подход простой =) когда мышка на рисунке он анимируется, как только мышка "уходит" с картинки, то анимация прекращается...
Так и надо как я написал. Просто я не понимаю почему изображение очень тормозит ... очень тормозит... |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
и все-таки я бы попробовал по-другому:
|
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: 2 Всего: 2 |
Да дело не в этом =) код работает безупречно ;) но... как я и говорил скорость анимации никакая.... какую я бы не ставил... скорость как у черепахи... как только гружу из файла то скорость раз в 10 выше, но опять таки рывками...
|
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Я сравнил:
1. Загрузка из файла в компонент TGifImage. Кол-во кадров 9 2. Загрузка этого же файла в TImage, и присваивание его с помощью метода Assign объекту TGifImage. Кол-во кадров 64. В общем глючит TImage не по детски. |
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: 2 Всего: 2 |
На оборот =) если грузить из файла - 64, если с компонента - 9.
Оказывается всё просто... когда в компонент идет вставка рисунка он записывает всё это в НЕХ код. Если записать туда Гиф... то он просто не умеет с ним работать... Вообщем попробуйте записать в TImage гиф рисунок. И потом сохранить его же... посмотрите на размер... |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
неа. Напрямую из файла правильное количество кадров, а через TIMage - глюк. ИМХО: Инициировать gif из файла, а не через TImage. Это самый правильный на мой взгляд вариант: при статической загрузке рисунка он помещается в исполняемый код, а это приводит к увеличению размера модуля (ведь весь рисунок хранится в dfm, а при сборке проекта запихивается в exe. Либо применять RxLib Либо отрисовывать покадрово вручную (мой первый пример) Но вариант с файлом - самый правильный. В конце концов можно и в ресурс запихать. |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Kirgston, короче попробуйте еще такой вариант:
Запуск анимации
У меня все хорошо отображается - значения Gif->AnimationSpeed - чем меньше тем медленнее (подбирайте экспериментально). Убил бы разработчиков студии за такой хелп. |
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: 2 Всего: 2 |
Неа... у меня ничего не меняется... вообще ничего... хе хе... ладно буду надеятся что в сл билдере будет лучше с поддержкой рисунков =)
|
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: 2 Всего: 2 |
УЖАААААААААААААААААААААААС бреееееееееед как же оно работает с анимацией ..... ребята а что за штуковина такая... что ТИмадж делает как бы окантовку чёрными пискелями? Что это? Зачем? Есть ему замена ? Под Билдер 2009 ?
![]() |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Странно, что мой вариант у вас не работает. Может свой gif мне скинете? Я меня отлично все работает. Возможно gif немного разный.
|
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: 2 Всего: 2 |
Да пожалуйста =)
У меня нормальное кол-во кадров только когда я считываю из файла... не знаю может быть вариант что это из-за системы... но это уж очень не правильный вариант =) Как я ни пытался... все равно не смог сделать нормальное кол-во кадров если рисунок лежит в TImage ... темболее на некоторых рисунках идет обвод контуров о_О причем автоматический. Посмотрите файл "флаг" . Если через виндовский проигрыватель картинок то всё хорошо, когда через Билдера... очень криво... Присоединённый файл ( Кол-во скачиваний: 6 ) ![]() |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
У меня все прекрасно работает.
Посмотрите: Присоединённый файл ( Кол-во скачиваний: 7 ) ![]() |
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: 2 Всего: 2 |
Ой ... извините я даже просто не так обрабатывал =) вообщем лучшая скорость "-1" =) как я понимаю Билдер сам делает оптимальную скорость, либо ставит максимальную...
В общем... огромное вам спасибо! А чёрные кубики у меня из-за того выставлен Stratch=true . Надо просто "подгонять" анимацию под размеры TImage . |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Ну слава Богу, а то я уж нечистую силу стал подозревать. -1 я поставил методом тыка, я так понял это скорость по умолчанию, которая задана в самом гифе. Но заставить картинку двигаться очень быстро у меня не получилось. Резюмируя данный вопрос - я бы отметил, что в 2009 хелп мне понравился еще меньше чем в шестерке. Конечно информации больше, онлайн доступ к msdn и т. п. Но скорость работы как самого хелпа так и скорость получения нужной информации хромает бессовестно. Также бесит напрочь отсутсвие хоть какого-то хелпа на работающие классы - типа того же гифа. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |