Показать сообщение отдельно
  #4  
Старый 27.09.2013, 14:44
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Тайм код говорит о том, что оптимизация нужна здесь: (68% времени на эту операцию уходит):

Код:
markRez := 0;
        if (invalidOld = 1) and (invalidNew = 0) then
        begin
          markRez := 1;
        end;
        if (invalidOld = 0) and (invalidNew = 1) then
        begin
          markRezInvalid := 1;
        end;

Нужно заменить ваш блок на этот:
Код:
markRez := InvalidOld AND not invalidNew;
markRezInvalid := invalidNew AND not invalidOld;
Только они(markRez, markRezInvalid) тогда должны быть не 0 и 1 (int) а true и false (bool)
Я сомневаюсь, что Not нужен. На живом примере, через Debug нужно проверить значения переменных.



B уничтожить к чертям сдвоенные if'ы
Ответить с цитированием