Показать сообщение отдельно
  #6  
Старый 25.08.2009, 15:32
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

Суть в том, что многое завист от логики компилятора.
Если компилятор "будет удовлетворен" результатом проверки :
Assigned(aNode) для aNode=nil, то "все в порядке"
А если "пойдет дальше" и проверит вторую часть условия :
Assigned(aNode.Parent) при aNode=nil, то может быть RunTime-ошибка.

Честно сказать, я не знаю логику "нынешних" компиляторов Delphi.
Но в старых версиях такой конфуз случался.
Поэтому стараюсь (на всякий случай) исключать такие потенциально опасные места на уровне исходников.
Ответить с цитированием