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

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

Быстрый вывод на экран [D5, Win2k]


Vcoder ©   (2004-11-07 22:08:00) 

Пишу свой компонент - наследник TGraphicControl, представляющий собой шкалу компаса с делениями, обозначением градусов и т.п. Поступаю следующим образом: в методе Paint строю картинку на Canvas-е методами MoveTo, LineTo, TextOut и др.
Но вот проблема: на медленных машинах (класса П1) прорисовка идет довольно-таки медленно - на глаз видно, как постепенно формируется изображение. Хотелось бы, чтобы прорисовка выполнялась не сразу на экране, а в начале в памяти, а затем уже готовое изображение переносилось бы на экран.

Пробовал создавать Bitmap, рисовать на нем, а затем делать
Canvas.Draw(0,0,Bitmap)
но при этом наблюдается сильное мерцание даже на П4-1700.

Пожалуйста, подскажите, как можно выйти из положения.
Заране благодарен.


Vcoder   (2004-11-09 21:21:00) [1]

Не спорю. Но в моем случае отсутствие мелькания (изображение обновляется раз в секунду) важнее выигрыша в скорости и экономии памяти.


jack128   (2004-11-09 20:11:00) [2]

вообще говоря - двойная буфферизация увеличивает время отрисовки ;)


Vcoder   (2004-11-09 18:01:00) [3]

Спасибо, AZ!.
Я чувствовал, что мне не хватает какой-то мелочи, и был прав.
Когда я установил у формы, на которой находится мой компонент, Doublebuffered:=True, все стало как надо - никакого мелькания. И не надо заморачиваться с буферизацией каждого компонента - форма умеет сама себя буферизовать.


AZ   (2004-11-09 04:40:00) [4]

А Doublebuffered:= True не помогает?


Наверх

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