Создаю класс так:
- Код: Выделить всё
TSomeItem = record
SomeField1: Byte;
SomeField2: Word;
SomeField3: DWord;
end;
{ TSomeClass }
TSomeClass = class(TObject)
Protected
FItems: array of TSomeItem;
function GetItem(Index: Integer): TSomeItem;
procedure SetItem(Index: Integer; AItem: TSomeItem);
Public
Constructor Create;
Property Items[Index: Integer]: TSomeItem Read GetItem Write SetItem; default;
Destructor Destroy; override;
end;
//...
function TSomeClass .GetItem(Index: Integer): TSomeItem;
begin
Result:=FItems[Index];
end;
procedure TSomeClass .SetItem(Index: Integer; AItem: TSomeItem);
begin
FItems[Index]:=AItem;
end;
Вроде бы все правильно.
Однако когда пытаюсь присвоить значение какому-либо полю свойства Items:
- Код: Выделить всё
var SomeVar: TSomeClass;
//...
SomeVar:=TSomeClass.Create;
SomeVar.Items[0].SomeField1:=1;
SomeVar[0].SomeField1:=1;
получаю
Error: Argument cannot be assigned to
Ну и собственно вопрос: ЧЯДНТ?