Анимация всегда делается одинаково:
1) стираем все
2) рисуем в новом месте
Соответственно тут то же самое:
1) рисуем серый прямоугольник на форме чтоб все стереть
2) рисуем флаг в новых координатах.
и не пойму, что мешает рисовать по координатам X и Y и по таймеру их менять.
Не проще так?
Код:
brush.Color:=clWhite;
rectangle(X,Y,X+100,Y+200);
brush.Color:=clBlue;
rectangle(X+100,Y,X+200,Y+200);
brush.Color:=clRed;
rectangle(X+200,Y,X+300,Y+200);
или что-нибудь в этом духе?