![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Анимация без мерцания [D5, D6, Win95/98, Win2k]
xxxXXxx © (2003-10-23 15:25:00)
Есть код вида:
for j:=0 to maxY-1 do
begin
for i:=0 to maxX-1 do
begin
col := ...
//рисуем на канве точку
Image1.Canvas.Pixels[i,j] := col;
end;
// для того, чтобы отображалась отрисованная строка изображения
Application.ProcessMessages;
end;
Возникает проблема - при отрисовке картинки происходит мерцание изображения. Как этого избежать?
Попытки использовать SwapBuffers(DC) внутри цикла , где DC=GetDC(Form1.Handle) - устанавливал при создании форму не привели к положительному результату, может, что не так делал?
Помогите, пожалуйста.
xxxXXxx (2003-10-23 17:20:00) [1]
в вышеприведённом куске кода надо непосредственно перед Application.ProcessMessages;
поставить SwapBuffers( DC );
где DC := GetDC(Handle);
xxxXXxx (2003-10-23 17:04:00) [2]
спасибо, работает :)
N169 (2003-10-23 16:04:00) [3]
Control.DoubleBuffered:=True;
где Control - контрол, "на котором лежит" картинка.
Напр., Form1, если на форме, или Panel1, если на панели и т.п.