Код: Выделить всё
function f1(...): boolean;
...
f1:=true;
Message(String(f1), 0);
end;
function f2(...): boolean;
...
f2:=f1(...);
if (f2) Message('Всё хорошо', 0);
else Message('Всё плохо', 0);
...
end;
Код был написан очень давно, работал без нареканий. Когда неожиданно перестал, причину пришлось искать долго. Тупо смотрел на эти несколько строк, пытался понять, где же я накосячил, и в упор не видел ничего проблемного. Понял, что накосячил не я, только когда навставлял отладочных сообщений. В итоге пришлось первую функцию трансформировать в процедуру, которая пишет свой результат в глобальную переменную, а вторая функция, соответственно, оттуда его читает. Таким образом, проблему удалось не то чтобы решить, но обойти. Теперь вот думаю: то ли глобально искать и чистить в своём коде все похожие места, то ли проблема всё-таки разовая и вызвана неудачным сочетанием каких-то факторов.
Надеюсь, кому-нибудь моё повествование сэкономит время и нервы.