Вот это сильно по глазам ударило:
Timer1.Enabled:=false;
Впринципе как и это
x:=0;
Можно было бы оформит как инициализированную переменную.
Далее. Можно было бы вырезать кнопочку "maximize", а то смотриться смешно
Итого. Вариант неплохой. При маденьких картинках всё "на ура". Поставил большую - мерцало только в путь. Я бы порекомендовал заменить обработчик таймера таким образом, чтобы он вызывал InvalidateRect в нужной области а не Repaint (кнопкам-то зачем лишний раз перерисовывться ).