|
|
|
MDI приложение моргает при перерисовке, как добиться "сглаженности"?
|
|||
|---|---|---|---|
|
#18+
Добрый день! Смог добиться создания, удаления окон, обновления данных в MDI окнах без морганий ...вот таким способом: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. Программа стала выглядеть "собранной", все контролы на окне единовременно прорисовываются, все ок. Но в некоторых случаях, например, при изменении размера, при разворачивании окна из свернутого состояния, даже просто при возврате в приложение из другого, жуткая перерисовка, контролы все моргают, "проявляются" по очереди, раздражает, выглядит недоработано. Используется Devexpress и скины. Как то можно это моргание побороть? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2019, 09:16 |
|
||
|
MDI приложение моргает при перерисовке, как добиться "сглаженности"?
|
|||
|---|---|---|---|
|
#18+
Devillio, Есть такая же проблема. Наблюдается, начиная с Win8. Решения пока не найдено. Проходя по цепочке вызовов, вышел на UpdateAction, который и приводит к перерисовке всех визуальных контролов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2019, 10:05 |
|
||
|
MDI приложение моргает при перерисовке, как добиться "сглаженности"?
|
|||
|---|---|---|---|
|
#18+
Да, причем никаких сторонних компонентов нет, все только родное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2019, 10:07 |
|
||
|
MDI приложение моргает при перерисовке, как добиться "сглаженности"?
|
|||
|---|---|---|---|
|
#18+
Судя по морганию, сначала форма восстанавливается до каких-то средних размеров, прорисовывается, и затем разворачивается во весь экран и опять прорисовывается. Нашел обходку одной из "проблем". Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. Убирает полностью моргание при переходе в приложение из другого. А вот при разворачивании не получается (( Отлов (Message.CmdType and $FFF0) = SC_RESTORE или AppEvents.OnRestore - срабатывают уже после восстановления. Если тоже самое (тот же try finally end) вставить в OnCanRestore (оно срабатывает до восстановления) - то окно восстанавливается черным и потом прорисовывется, что тоже некрасиво. :( груздь пичаль. ну, будем пока так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2019, 10:17 |
|
||
|
MDI приложение моргает при перерисовке, как добиться "сглаженности"?
|
|||
|---|---|---|---|
|
#18+
Нашел решёнство! )) Через жоКак то, скорее всего, не по феншую, но пашет! ) Вот тут обещают, но я не пробовал VCL, избавляемся от мерцания, раз и навсегда А сделал вот так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Не знаю, конечно, как на совсем слабых компах будет, у меня видюшки нет, i3, прям красиво плавненько проявляется при восстановлении )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2019, 11:12 |
|
||
|
MDI приложение моргает при перерисовке, как добиться "сглаженности"?
|
|||
|---|---|---|---|
|
#18+
DevillioДобрый день! Смог добиться создания, удаления окон, обновления данных в MDI окнах без морганий ...вот таким способом: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. Программа стала выглядеть "собранной", все контролы на окне единовременно прорисовываются, все ок. Но в некоторых случаях, например, при изменении размера, при разворачивании окна из свернутого состояния, даже просто при возврате в приложение из другого, жуткая перерисовка, контролы все моргают, "проявляются" по очереди, раздражает, выглядит недоработано. Используется Devexpress и скины. Как то можно это моргание побороть? Спасибо! 1) Почему здесь нельзя использовать LockWindowUpdate , потому что эта функция предназначена для других целей 2) Кури ClientHandle + WM_SETREDRAW ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2019, 11:22 |
|
||
|
MDI приложение моргает при перерисовке, как добиться "сглаженности"?
|
|||
|---|---|---|---|
|
#18+
Квейд, в одном из приложений, тоже MDI, тестировал поведение: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. сейчас, к сожалению, не вспомню, по каким именно причинам, но вариант с Lock был выбран по поведению как наиболее подходящий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2019, 11:46 |
|
||
|
|

start [/forum/topic.php?fid=58&tid=2039551]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
434ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 762ms |

| 0 / 0 |
