Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » RxLib. RxGifAnimator крэшит приложение

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

ziesto

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, никто не сталкивался с подобным. Когда делаю какие-то ресурсоемкие операция и вывожу формочку на которой в RxGifAnimator бегает прогрессбар. В RxGifAnimator включен параметр асинхронного вывода изображения, чтобы анимация бегала, пока в VCL выполняется код.  
 
Так вот с стабильной регулярностью в какой-то момент компонент выбивает access violetion и крэшит приложение.
 
Никто с таким не сталкивался или подскажите норм. версию RxLib для XE7

Всего записей: 77 | Зарегистр. 16-07-2011 | Отправлено: 12:50 11-03-2015
landy



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вероятнее всего, там где-то внутри вызов Synchronize потерян.  
 
Попробуй эту сборку, тут заявлена поддержка XE7

Всего записей: 576 | Зарегистр. 17-01-2003 | Отправлено: 18:48 11-03-2015
ziesto

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
именно ее и пользую

Всего записей: 77 | Зарегистр. 16-07-2011 | Отправлено: 13:19 12-03-2015
landy



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тогда переходи на JVCL - код rx теперь там, но, возможно, компоненты уже под другими именами. Есть автоматический конвертер. Статья

Всего записей: 576 | Зарегистр. 17-01-2003 | Отправлено: 14:44 12-03-2015 | Исправлено: landy, 14:45 12-03-2015
ziesto

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На JVCL пару лет назад был такой же прикол, может что-то поменялось, в любом случае спасибо, буду пробовать.

Всего записей: 77 | Зарегистр. 16-07-2011 | Отправлено: 19:27 12-03-2015
NeoAnomaly

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ziesto, а почему бы не воспользоваться стандартными средствами delphi? TGifImage.
Там отрисовка по таймеру, т.е. на сколько я понял, у тебя ресурсоёмкая операция в главном потоке выполняется, вызывай периодически ProcessMessages и всё должно работать )

Всего записей: 418 | Зарегистр. 23-03-2010 | Отправлено: 18:03 21-03-2015 | Исправлено: NeoAnomaly, 18:06 21-03-2015
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ziesto, анимация в отдельном потоке?

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 20:06 21-03-2015
NeoAnomaly

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
ziesto, анимация в отдельном потоке?

reenoip судя по сообщению landy

Цитата:
Вероятнее всего, там где-то внутри вызов Synchronize потерян.  

Таймер фреймов построен на потоке, но как-то слабо верится, что можно было один Synchronize потерять... В любом случае надо код ревью делать или дебажить ) А в идеале реализовывать ресурсоёмкие операции в отдельном потоке, а не в главном.

Всего записей: 418 | Зарегистр. 23-03-2010 | Отправлено: 20:39 21-03-2015 | Исправлено: NeoAnomaly, 20:39 21-03-2015
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
судя по сообщению landy

Так ведь не landy является автором вопроса

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 16:53 23-03-2015
NeoAnomaly

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2reenoip,

Цитата:
В RxGifAnimator включен параметр асинхронного вывода изображения, чтобы анимация бегала, пока в VCL выполняется код.  


Всего записей: 418 | Зарегистр. 23-03-2010 | Отправлено: 16:58 23-03-2015
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NeoAnomaly, пока я гуглю - можешь популярно объяснить, в чём связь между "потоком" и "асинхронным выводом изображения"? В смысле, на каком курсе универа им приписывают взаимоисключающую друг друга связь? А то, может, я на самом деле пропустил чего...
 
Добавлено:
Хотя, самому автору ответ, видимо, уже до п***ы

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 11:47 26-03-2015
NeoAnomaly

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
NeoAnomaly, пока я гуглю - можешь популярно объяснить, в чём связь между "потоком" и "асинхронным выводом изображения"? В смысле, на каком курсе универа им приписывают взаимоисключающую друг друга связь?

reenoip, так никто и не говорит об исключении, я же наоборот говорю, что в рамках представленного компонента асинхронный вывод изображения реализован через таймер на потоке. Если я конечно правильно понял твой вопрос

Всего записей: 418 | Зарегистр. 23-03-2010 | Отправлено: 12:12 26-03-2015
landy



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 можешь популярно объяснить, в чём связь между "потоком" и "асинхронным выводом изображения"? В смысле, на каком курсе универа им приписывают взаимоисключающую друг друга связь?

Если поток строит и выводит изображение, используя методы VCL, но не через Synchronize, то в случайные моменты времени оно будет выдавать AV, поскольку основная часть VCL не потокобезопасна.

Всего записей: 576 | Зарегистр. 17-01-2003 | Отправлено: 17:46 26-03-2015
LadyOfWood

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В любом случае надо смотреть в сторону синхронизации. Если есть отдельный поток, то все вызовы к VCL должны быть обернуты в Synchronize.

Всего записей: 620 | Зарегистр. 16-09-2003 | Отправлено: 15:22 28-03-2015
ziesto

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
NeoAnomaly, пока я гуглю - можешь популярно объяснить, в чём связь между "потоком" и "асинхронным выводом изображения"? В смысле, на каком курсе универа им приписывают взаимоисключающую друг друга связь? А то, может, я на самом деле пропустил чего...  

Перечитал несколько раз, так и не понял, что автор имел ввиду...

Всего записей: 77 | Зарегистр. 16-07-2011 | Отправлено: 01:56 28-06-2015
NeoAnomaly

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ziesto, вопрос то решился? ))
 
Перечитал начало темы, по поводу бесконечного прогресса, как вариант: ProgressBar.Style := pbstMarquee.

Всего записей: 418 | Зарегистр. 23-03-2010 | Отправлено: 08:34 29-06-2015
protoror



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Попробуй TRzAnimator из Raize components все прекрастно работает

Всего записей: 494 | Зарегистр. 23-11-2009 | Отправлено: 11:00 09-07-2015
ziesto

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос решился тем, что я просто показываю статическую GIF и все
 
protoror, спасибо, попробую

Всего записей: 77 | Зарегистр. 16-07-2011 | Отправлено: 11:39 19-07-2015
idiMAN

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ziesto
В своё время использовал rxGif примерно так:
1) Раскладывал TGIFImage на фреймы
2) По событию таймера циклически показывал фрейм за фреймом

Всего записей: 466 | Зарегистр. 05-05-2003 | Отправлено: 16:24 20-07-2015
AlmazSpb2

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В последнем JVCL тоже все хорошо работает. Код потокобезопасен - везде использован Synchronize.

Всего записей: 25 | Зарегистр. 20-06-2008 | Отправлено: 09:18 26-08-2015
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » RxLib. RxGifAnimator крэшит приложение


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru