При использовании старого способа объявления свойств в сигнатуре процедуры/функции, используемой для обработки доступа к свойству, первые переменные, отвечающая за индексы свойства, передаются по ссылке (объявлены с ключевым словом Var). Передача параметров по ссылке в таких случаях запрещена спецификацией языка Fore.
Удалите ключевое слово 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(Var i: Integer; s: String);
Begin
PropValue[i] := s;
End Sub Set_Item;
Function Get_Item(Var 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;
При компиляции указанного кода будет сгенерирована ошибка «Метод, реализующий индексированное свойство не может содержать параметры, передаваемые по ссылке». Для разрешения ошибки необходимо удалить ключевое слово «Var», указанное перед параметром «i» в области объявления переменных в процедуре Set_Item и функции Get_Item.
См. также:
Ошибки компилятора | Ошибка: Метод <ИмяМетода> не может содержать параметры, передаваемые по ссылке