Анимация / Перерисовка движущихся панелей мерцает плохо - предложения?
Надеюсь, что некоторые из вас смогут указать мне правильное направление для решения проблем, связанных с мерцанием / разрывом / перерисовкой, когда я "анимирую" некоторые компоненты в приложении.
Я должен предвосхитить это, сказав, что "анимации", кажется, работают правильно (без мерцания и т. Д.), Когда не в полноэкранном режиме - т.е. 1024*768, borderstyle=bsSingle. Когда приложение берет на себя полный контроль, а пограничный стиль становится bsNone, эта проблема становится более чем очевидной.
Есть 2 "анимации":
1 - прокрутка панелей слева направо с помощью метода Winapi AnimateWindow
2 - TmsAdvPolyPager просматривает каждый из своих элементов и затем показывает свою "страницу"
При прокрутке панелей "выходящая" панель оставляет "след", и анимация кажется дрожащей, она перестает быть плавной.
При переходе по элементам TmsAdvPolyPager следующий элемент иногда не выделяется, и на странице, которую он показывает, часто присутствуют "остатки" с предыдущей панели.
Обе анимации запускаются таймером - AnimateWindow находится в своем собственном потоке, а шаг PolyPager - нет.
Итак, в основном - есть какие-нибудь мысли о том, как сгладить эти анимации и заставить корректно перерисовать компонент TmsAdvPolyPager? В первый раз пробую такие вещи, поэтому не совсем уверен, что посмотреть на это.
Как всегда, помощь очень ценится!
1 ответ
TPaintBox - это то, что вам нужно, возможно, на TScroller.
Скопируйте панели и нарисуйте прямоугольники на холсте TPaintbox.
Вы, очевидно, уже написали 99% этого кода, поэтому переход к определенным прямоугольникам не должен быть проблемой:)