Анимация без мерцания
Данная программа иллюстрирует применение процедурLockDrawing
и
Redraw
для реализации анимации без мерцания:
uses GraphABC; begin LockDrawing; for var i:=1 to 500 do begin Window.Clear; Brush.Color := clGreen; Ellipse(i,100,i+100,200); Redraw; Sleep(1); end; end.
Основная идея состоит в следующем: отключим рисование на экране, вызвав
LockDrawing
(рисование будет осуществляться только во внеэкранном
буфере), после чего будем всякий раз формировать новый кадр изображения и
выводить его целиком на экран, вызывая Redraw
. При вызове
Redraw
перерисовывается все графическое окно,
поэтому скорость анимации ограничена скоростью вывода внеэкранного буфера на
экран.