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

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

Как незаметно перерисовать форму? [D6, WinME]


Helg ©   (2002-11-12 19:44:00) 

Подскажите, как нормальные люди поступают в таких случаях: Я рисую на Form1.Canvas трехмерную картинку, потом меняю параметры картинки, стираю старую - RectAngle(ClipRect) и рисую новую. При этом в момент очистки и перерисовки, естественно проскакивают блики и мигание. Как бы сделать так, чтобы момент перерисовки на экране не отображался?


Helg   (2002-11-13 20:25:00) [1]

Отлично, BitBlt сработал. То, что доктор прописал. У меня как раз BitMap нашелся не задействованный в этот момент. Остальное пока не пробовал.


AlexT1000   (2002-11-13 12:06:00) [2]

вставляешь в форму

procedure WMErase(var msg:TMessage); message WM_ERASEBKGND;


procedure TFormImage.WMErase(var msg: TMessage);
begin
msg.Result := 1;
end;


Song   (2002-11-13 09:20:00) [3]

>>Рисуют на битмапе, затем его BitBlt на форму
Это реализация DoubleBuffered. Может им можно обойтись?


MBo   (2002-11-13 05:23:00) [4]

Рисуют на битмапе, затем его BitBlt на форму


Song   (2002-11-12 21:06:00) [5]

Способы есть, но у Вас сиуация очень нестандартная.
Попробуйте LockUpdateWindow().


Наверх

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