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;
その行動について何か説明はありますか?