Galkov, да моргает оно и по WM_PAINT, да еще неплохо моргает, сильно заметно при перерисовке больших полей. Читал (но не проверял), что DubleBuffer применять надо, но Кладов пишит, что метод медленный.
Этот топик читают: Гость
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
На слово-то я особо не верю...
Как проверял |
|||
карма: 9 |
|
Ответов: 2058
Рейтинг: 28
|
|||
Я не знаю нужно это вам или нет, но если в компоненте Image установить ViewStyle=Stretch и выводить в нём картинки, то моргания в этом компоненте проподают.
|
|||
карма: 1 |
|
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
Galkov писал(а): Как проверялnesco писал(а): Читал (но не проверял)Не успел еще проверить. |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Эдик писал(а): то моргания в этом компоненте пропадаютА они, что - ЕСТЬ Доказательства давай. |
|||
карма: 9 |
| ||
Голосовали: | Валерий |
Ответов: 2058
Рейтинг: 28
|
|||
Galkov, http://www.hiasm.com/forum.html?q=3&p=77904#p77904
------------ Дoбавленo: Эдик, вообще то Артём использует b160, на b167 может всё подправили, но если у себя замечу то выложу схему. |
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Эдик, ты мне предлагаешь прошерстить весь топик, чтобы найти то, чего не работало у некого Артем-а, поставить элемент avitobmp, и фиг его знает чего еще
Для того, чтобы посмотреть, как у кого-то что-то замигало, и выяснить, не виноват ли здесь элемент Image Пардон, но ответь пожалуйста на вопрос: у тебя ЕСТЬ проблемы с Image, или ты просто так - мимо проходил |
|||
карма: 9 |
|
Ответов: 2058
Рейтинг: 28
|
|||
Galkov писал(а): ответь пожалуйста на вопрос: у тебя ЕСТЬ проблемы с Image, или ты просто так - мимо проходил Сейчас нет. Но раньше были такие же как и Артёма. Нельзя уже рядом, мимо пройти. |
|||
карма: 1 |
|
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
Galkov, вот, я нашел, как применять DoubleBuffer, показано на примере режима Stretch
А вот пример для проверки
Если загрузить картинку до исправления и понажимать подряд несколько раз на кнопку Draw, то будут заметны мерцания. После исправления, у меня мерцания исчезли напрочь, сколько не жал. Но есть один недостаток -- такой метод сильно порожорлив до памяти. |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
1) Какова цель этих плясок с бубном
Двойной буфер - это bitmap. Зачем приделывать велосипеду еще два колеса сверху и ездить уже вверх ногами - непонятно совершенно. У него уже есть два колеса, можно ездить нормально 2) Зачем тебе обработчик очереди в схеме 3) Не надо ни искать, как применить двойной буфер, ни применять его |
|||
карма: 9 |
|
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
Galkov писал(а): Двойной буфер - это bitmapGalkov писал(а): Зачем тебе обработчик очереди в схемеGalkov писал(а): 3) Не надо ни искать, как применить двойной буфер, ни применять егоЯ не могу тебя понять, ты оспариваешь все, что только можно оспорить. |
|||
карма: 22 |
|
Ответов: 2125
Рейтинг: 159
|
|||
В споре рождается истина
|
|||
карма: 1 |
| ||
Голосовали: | Астрамак |
Ответов: 9906
Рейтинг: 351
|
|||
nesco писал(а): Ты можешь на моей схеме показать, как его не применять, я буду очень рад этомуНа здоровье
nesco писал(а): Ты мне скажи, при многократном нажатии кнопки Draw у тебя мерцает экран "до" и "после" применения буфераГоворю: 1) не мигает с моими кодами, наверное в твоей терминологии - "до" 2) и не должна 3) применять твое "после" - даже мысли такой не возникнет. Пока у плясок с бубном не возникнет адекватная причина Ее - НЕТ. |
|||
карма: 9 |
|
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
Galkov писал(а): применять твое "после" - даже мысли такой не возникнетДа и ты, вроде, спрашивал: Galkov писал(а): На слово-то я особо не верю...
Как проверял Вот и проверил, на свою голову |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
nesco писал(а): Да это bitmap, но отрисовывается он в памяти с последующим копированииПо русски, пожалуйста. На всякий случай, к твоему сведению: рисование на битмапе, это рисование на совместимом с ним контексте, и больше ни на чем. И не припомню там никаких копирований, чего-то. Т.е., ровно тоже самое, что ты пытаешься изобрести. Просто оно все уже давно сделано, коды пристегнуты и новых затрат не требуют. PaintBox: дает внешнее событие по onPaint, ты рисуешь 143 раза на контексте совместимом с битмапом (который и есть двойной буфер), этот битмап выкидывается одним махом (без миганий) на контекст окна Все Если невмоготу, и шибко хочется порисовать именно на окне (хотя PaintBox и сделан как окно, на котором шибко хочется порисовать): ставь в схеме элемент Bitmap, по onPaint любимого окна, рисуй на Bitmap-е (а на самом деле, на совместимом с ним контексте) 143 раза, и выкидывай этот Bitmap на окно Все то же самое Чего людям голову морочить с какой-то двойной буферизацией ------------ Дoбавленo: Про то, что говорил tsdima: Мигание возникает, когда несколько раз, по разному, рисуют на контексте окна - одну и ту же область Это - не твой пример, нет там такого. Про проверку: мне смутно припоминается, что в кодах Image для 160-й (нет у меня сейчас этих кодов) обработчик onPaint пользовался именно контекстом из WM_PAINT, и мигал при этом |
|||
карма: 9 |
|