Создаю класс так:
- Код: Выделить всё
- 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
Ну и собственно вопрос: ЧЯДНТ?




