У меня есть процедура, которая принимает 2 строковых параметра, один из которых имеет значение по умолчанию. Внутри процедуры я хочу объединить один и другой и некоторые литералы в одну большую строку. Почему-то я получаю AV ... есть идеи?
код примерно такой
{$WRITEABLECONST ON}
constructor MyClass.Create(s1: string; s2: string = GlobalConstant);
var s3: string;
begin
....
if (s2 = '') then s2 := GlobalConstant + ' (' + s1 + ')'; // AV here
....
end;
Если я назначу GlobalConstant + ' (' + s1 + ')
на s3
, то s3
на s2
, AV исчезнет. Зачем? Что не так с прямой записью в строковый параметр?