Ответов: 9906
Рейтинг: 351
|
А я не ругаюсь, я сообщаю информацию.
Которая заключается в следующем:
Приведенный код есть не более, чем бред сивой кобылы (не говоря уже о буферизации). Это из серии: "что делает кот, когда ему делать нефиг..."
Двойная буферизация и св-во DoubleBuffered для контролла - это не тождественные вещи. Второе является всего лишь одним из способов реализации первого.
Если читать не только "колобок", но и исходные коды, то можно обратить внимание на то, что механизм DoubleBuffered основан на том, что по onPaint в аргументе передается не контекст окна, а совместимый с неким главным битмэпом. Который одним махом и выкидывается потом на контекст окна. И исключение для RichEdit как раз и связано с тем, что эта зараза (говоря словами Кладова) при default-рисовании пользует не параметр от WM_PAINT, а самостоятельно (видимо, как и мы) добывает его независимым путем.
Именно по этой причине в HiAsm эту фишку в KOL с маху использовать нельзя: мы можем рисовать не на контексте (поэтому и не получаем его нигде), а "на хэндле окна"
Опять же, если читать не только "колобок", но и исходные коды, то можно понять, что установка св-ва Transparent автоматически включает DoubleBuffered. Таковое (к сожалению) встречается не только в ListEdit
А рисование в Image и PaintBox - это чистейшей воды двойная буферизация, хоть и не имеющая никакого отношения к DoubleBuffered .
Как бы не было противно окружающим.
Потому и не мигает, кстати говоря.
|
карма: 9 |
| 2 |
|
Голосовали: | nesco, temp |