Я думаю, что вы правы - нет смысла использовать свойства для записей, это кажется большой работой ... просто есть процедура, которая делает что-то с записью: SetSomething (var ARec: TRec)

юбопытно узнать, почему Delphi рассматривает свойства типа записи только для чтения:

  TRec = record
    A : integer;
    B : string;
  end;

  TForm1 = class(TForm)
  private
    FRec : TRec;
  public
    procedure DoSomething(ARec: TRec);
    property Rec : TRec read FRec write FRec;
  end;

Если я попытаюсь присвоить значение любому из членов свойства Rec, я получу ошибку «Невозможно назначить левую сторону»:

procedure TForm1.DoSomething(ARec: TRec);
begin
  Rec.A := ARec.A;
end;

при этом допускается то же самое с нижележащим полем:

procedure TForm1.DoSomething(ARec: TRec);
begin
  FRec.A := ARec.A;
end;

Есть ли объяснение этому поведению?

Ответы на вопрос(8)

Ваш ответ на вопрос