Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как убрать мерцание с помощью двойной буферизции [D6, WinXP]


crizis ©   (2004-07-24 12:54:00) 

Здравствуйте.
У меня есть Image. на нем я методами MoveTo LineTo рисую некое изображение.
При изменении размера Image получаю сильное мерцание. Я пробывал с этим боротся через буферизацию изображения, тоесть создавал переменную класса Tbitmap, и всю прорисовку проводить в ней, а только потом накладывать уже готовое изображение на канву, но мерцание все равно осталось.
В инете нашел инфу, что с этим можно борося с помощью двойной буферизации, но ничего конкретного о ней не знаю..

собственно, сабж...


-=IVA=-   (2004-08-05 16:15:00) [1]

Огромное Кулясищще ©  
сорри, не заметил , что ты уже написал это ;)


-=IVA=-   (2004-08-05 16:14:00) [2]

Form1.DoubleBuffered:=True;


Огромное Кулясищще   (2004-07-24 16:35:00) [3]

2 crizis (24.07.04 12:54):

Как именно происходит изменение размеров TImage и как всё мерцает? Ты либо один раз меняешь размер TImage и получаешь одно мерцание, либо размеры меняются динамически, возможно мышкой, и получаешь множество мерцаний?

Теперь по сути. Если ты рисуешь на канве, то может быть попробуй TPaintBox. Если нужно выводить изображение из растра, то TBitmap всегда придёт на помощь.

В принципе, двойная буфферизация как таковая - термин для игр, когда изображение выводится постоянно. С TPaintBox можно прекрасно работать, если рисовать в OnPaint. Это значит, что весь код рисования расположен в обработчике именно этого события, а когда нужно что-то нарисовать, то вызывай TPaintBox.Invalidate.

Ну а если по-простому и ты не хочешь со всем этим связываться, то поставь у формы DoubleBuffered := True в OnCreate; Если TImage расположен на панели, то ставь не у формы, а у панели.


Огромное Кулясищще   (2004-07-24 16:28:00) [4]

2 Pa5ha (24.07.04 14:59) [2]:

Ты явно промахнулся с ответом.


Pa5ha   (2004-07-24 14:59:00) [5]

Stretch:=true;
AutoSize:=true;


crizis   (2004-07-24 13:40:00) [6]

Удалено модератором
Примечание: Создание пустых сообщений


Наверх

Титульная страница Поиск, карта сайта Написать письмо