Вверх ↑
Разработчик
Ответов: 26271
Рейтинг: 2142
#1: 2008-07-02 23:16:30 ЛС | профиль | цитата
Tad, нельзя, тк как делается


inc(FCurIndex);
после достижения конца индекс станет несуществующим, и если его получить снизу, по окончанию цикла, то будет лажа
По достижению конца индекс должен указывать либо на последний индекс, либо на начало следующего цикла

------------ Дoбавленo:


Tad, я поставил _debug в контроль останова и проверил надежность отключния по стоп и окончанию цикла, вот так будет правильно


   inc(FCurIndex);
if FCurIndex > FListIndex.Count - 1 then begin
if FCircleAnima then
if FStopCycle then begin
FStop := true;
FFlagDelay := false;
FCurIndex := FListIndex.Count - 1;
end else begin
FCurIndex := 0;
FFlagDelay := true;
FTimerCycle.Enabled := true;
end else begin
FStop := true;
FCurIndex := FListIndex.Count - 1;
end;
_hi_OnEvent(_event_onEndCycle);
end;

------------ Дoбавленo:


Я вот думаю, что нижние точки выкинуть надо бы, да и FCurIndex пусть всегда по-окнчанию будет равен нулю

------------ Дoбавленo:


Вот исправленный вариант -- ver 1.30 (наверное, последний)

В этой версии нет нижних точек, не понял, зачем они нужны
карма: 22

0
файлы: 1iconanimation_1_30.zip [10.3KB] [238]