По умолчанию, логические выражения вычисляются с оценкой короткого замыкания. Это означает, что вычисление прекращается как только становится понятен результат, и возвращается результат. Например, в следующем выражении:
B := True or MaybeTrue;
Компилятор не будет вычислять на значении MaybeTrue, так как очевидно, что выражение всегда будет истинным.
В результате этой стратегии, если MaybeTrue является функцией, она не будет вызвана! (Это может привести к непонятному поведению. Например при использовании в свойствах)
|