Анимация / Перерисовка движущихся панелей мерцает плохо - предложения?

Надеюсь, что некоторые из вас смогут указать мне правильное направление для решения проблем, связанных с мерцанием / разрывом / перерисовкой, когда я "анимирую" некоторые компоненты в приложении.

Я должен предвосхитить это, сказав, что "анимации", кажется, работают правильно (без мерцания и т. Д.), Когда не в полноэкранном режиме - т.е. 1024*768, borderstyle=bsSingle. Когда приложение берет на себя полный контроль, а пограничный стиль становится bsNone, эта проблема становится более чем очевидной.

Есть 2 "анимации":

1 - прокрутка панелей слева направо с помощью метода Winapi AnimateWindow

2 - TmsAdvPolyPager просматривает каждый из своих элементов и затем показывает свою "страницу"

При прокрутке панелей "выходящая" панель оставляет "след", и анимация кажется дрожащей, она перестает быть плавной.

При переходе по элементам TmsAdvPolyPager следующий элемент иногда не выделяется, и на странице, которую он показывает, часто присутствуют "остатки" с предыдущей панели.

Обе анимации запускаются таймером - AnimateWindow находится в своем собственном потоке, а шаг PolyPager - нет.

Итак, в основном - есть какие-нибудь мысли о том, как сгладить эти анимации и заставить корректно перерисовать компонент TmsAdvPolyPager? В первый раз пробую такие вещи, поэтому не совсем уверен, что посмотреть на это.

Как всегда, помощь очень ценится!

1 ответ

TPaintBox - это то, что вам нужно, возможно, на TScroller.

Скопируйте панели и нарисуйте прямоугольники на холсте TPaintbox.

Вы, очевидно, уже написали 99% этого кода, поэтому переход к определенным прямоугольникам не должен быть проблемой:)

Другие вопросы по тегам