Вверх ↑
Ответов: 9906
Рейтинг: 351
#1: 2008-01-30 23:04:16 ЛС | профиль | цитата
А я не ругаюсь, я сообщаю информацию.

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

  • карма: 9

    2
    Голосовали:nesco, temp