title: "Left side cannot be assigned to" for record type properties in Delphi
body: <p>I'm curious to know why Delphi treats record type properties as read only:</p>
  
  <pre><code>  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;
  </code></pre>
  
  <p>If I try to assign a value to any of the members of Rec property, I'll get "Left side cannot be assigned to" error:</p>
  
  <pre><code>procedure TForm1.DoSomething(ARec: TRec);
  begin
    Rec.A := ARec.A;
  end;
  </code></pre>
  
  <p>while doing the same with the underlying field is allowed:</p>
  
  <pre><code>procedure TForm1.DoSomething(ARec: TRec);
  begin
    FRec.A := ARec.A;
  end;
  </code></pre>
  
  <p>Is there any explanation for that behavior?</p>