Цитата:
Сообщение от Aristarh Dark
А зачем тебе это?
Компилятор оптимизирующий, он понимает что убывающий цикл преобразуется в более эффективный машинный код чем возрастающий. Результат-то у тебя верный, чего тебе еще нужно?
|
Проблема как раз в том, что мне необходима моя реализация алгоритма, так как от направления зависит результат вычислений.
Не вдаваясь в подробности алгоритма, вопрос адресован конкретно по этому на мой взгляд необъяснимому и непонятному поведению компилятора.
Насчет преобразования хотелось бы поподробней, ибо он такое не всегда совершает. К примеру, в конструкции:
Код:
for i := 0 to FileList.Count - 1 do
begin
FileNameLabel.Caption := 'Файл: ' + FileList.Strings[i];
DetalProgressBar.Position := 0;
DetalProgressBar.Hint := ExtractFileName(FileList.Strings[i]);
ByteS := 0;
TimeBuf := Now();
Windows.CopyFileEx(
PChar(UpdatePath+FileList.Strings[i]),
PChar(AppPath+FileList.Strings[i]),
@ProgressRoutine,
nil,
nil,
0
);
if IsCanceled then Break;
end;
все работает так, как нужно, без полтергейстов.