В проекте используется одна гифка, по какому-то событию она запускается в теле процедуры.
В самой гифке на обработчик OnFrameChanged повешена процедура прекращения анимации
procedure TfrmMain.rxgifanmtrTestFrameChanged(Sender: TObject);
begin
if (Sender as TRxGIFAnimator).FrameIndex = 14 then
(Sender as TRxGIFAnimator).Animate := false;
end;
но как только это условие срабатывает виснет вся прога, в то же время если где в кнопку вставить оператор выключения анимации гифки - то она корректно останавливается. Поэтому использую такой велосипед - есть на форме таймер, в котором присутствует этот оператор
procedure TfrmMain.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := false;
rxgifanmtrTest.Animate := false;
end;
а уже в обработчике само гифки стоит
procedure TfrmMain.rxgifanmtrTestFrameChanged(Sender: TObject);
begin
if (Sender as TRxGIFAnimator).FrameIndex = 14 then
Timer1.Enabled := true;
end;