Ребят, привет, подскажите, пж, в чем беда, есть такая строка:
b := (idx < 0) or Pars[idx].value;
b - boolean, в value хранится variant, delphi 10.3, debug, {$O+}.
Почему при значении idx = -1 программа пытается получить value у элемента массива? По идее же, если первый операнд равен True, то второй не высчитывается для оптимизации? хм... или все-таки сначала происходит преобразование второго операнда к Boolean, а затем просто не используется?
так ты НЕ УСЛОВИЕ вычисляешь! а булевое значение!