Показать сообщение отдельно
  #3  
Старый 11.05.2011, 12:32
ProESM ProESM вне форума
Прохожий
 
Регистрация: 19.03.2009
Сообщения: 33
Репутация: 10
По умолчанию

Цитата:
Сообщение от 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;
все работает так, как нужно, без полтергейстов.
Ответить с цитированием