Анимация без мерцания

Анимация без мерцания

Данная программа иллюстрирует применение процедур 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 перерисовывается все графическое окно, поэтому скорость анимации ограничена скоростью вывода внеэкранного буфера на экран.