При использовании старого способа объявления свойств в качестве обработчика Set-части указана процедура, содержащая в своей сигнатуре параметры, передаваемые по ссылке (с ключевым словом Var). В качестве обработчиков допустимо использовать только процедуры с параметрами, передаваемыми по значению.
Удалите ключевое слово Var, установленное перед параметрами в заголовке процедуры, используемой свойством.
Class MyClass: Object
Private PropValue: Array Of String;
Public Constructor Create(Length: Integer);
Begin
PropValue := New String[Length];
End Constructor Create;
Sub Set_Item(i: Integer; Var s: String);
Begin
PropValue[i] := s;
End Sub Set_Item;
Function Get_Item(i: Integer): String;
Begin
Return PropValue[i];
End Function Get_Item;
Public Property Item(i: Integer): String Get Get_Item Set Set_Item;
End Class MyClass;
При компиляции указанного кода будет сгенерирована ошибка «Метод 'Set_Item' не может содержать параметры, передаваемые по ссылке». Для разрешения ошибки необходимо удалить ключевое слово «Var», указанное перед параметром «s» в области объявления переменных процедуры Set_Item.
См. также:
Ошибки компилятора | Ошибка: Метод, реализующий индексированное свойство не может содержать параметры, передаваемые по ссылке