У меня есть процедура, которая принимает 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 исчезнет. Почему? Что не так с прямой записью в строковый параметр?