Повторяю — проблема мерцания в классических WinApi приложениях никуда не исчезла, те что не мерцают — сами буферизируют отрисовку или вообще используют один из фреймворков для GUI.
Как я уже писал: «Откройте стандартный «диспетчер устройств» и попробуйте изменять размер окна, оцените мерцание.».
Возможно у вас быстрая машина и вы не успеваете заметить мерцание, или приложение на котором вы проверяете буферизирует отрисовку.
но вы форсируете «папу» «напечататься» (WM_PRINTCLIENT), а это может иметь побочные эффекты. Лет адцать назад я встречал контролы, которые не давали «печататься» — чтобы нельзя было сделать, скажем, слепок с защищенной пдфки, которую контрол демонстрирует.
Как я уже писал, класс показал свою надежную работу :)
Но для таких «кривоватых» контролов я сделал виртуальный метод procedure DrawBackground(DC: HDC); virtual;, в котором для обхода проблем подобных компонентов можно переопределить отрисовку фона.
Кроме того компонент имеет множество настроек буферизации.
К сожалению начиная с Windows Vista, GDI практически перестало использовать 2д ускорение, и к сожалению проблема мерцания никуда не ушла, да о чем говорить — многие стандартные Windows приложения мерцают.
Знаете, при всех недостатках сайта на ассемблере, он все еще держит хабраэффект, при том что многие, очень многие, не выдерживали столько, я считаю что это победа!
Вне обсуждения практичности, автор крут!
Если она уникальная, а не «набор новых текстур» — как многие уверяют, то это же круто!
А в том что на Delphi — не вижу совершенно никаких проблем, наоборот приятно.
Если я ничего не путаю, выкладывали сорцы старых Казаков где-то, они были на C++, возможно Казаки написаны на C++Builder просто, он использует Delphi RTL.
История с картинкой — проста, не знал что поставить для привлечения внимания, наткнулся на свой пиксельарт, нарисованный во время хайпа Трампа, ради прикола, и заменил фон.
Возможно у вас быстрая машина и вы не успеваете заметить мерцание, или приложение на котором вы проверяете буферизирует отрисовку.
В VCL также, посмотрите на саму Rad Studio.
Как я уже писал, класс показал свою надежную работу :)
Но для таких «кривоватых» контролов я сделал виртуальный метод procedure DrawBackground(DC: HDC); virtual;, в котором для обхода проблем подобных компонентов можно переопределить отрисовку фона.
Кроме того компонент имеет множество настроек буферизации.
Вне обсуждения практичности, автор крут!
А в том что на Delphi — не вижу совершенно никаких проблем, наоборот приятно.
https://habrahabr.ru/post/318870/#comment_9992962
А разве Казаки на Delphi написаны?
Хм, не видел, можно линк.
Впрочем в 10-ке их LINQ нет.