"Linke Seite kann nicht zugewiesen werden" für Datensatztypeigenschaften in Delphi

Ich bin neugierig, zu wissen, warum Delphi behandelt record type Eigenschaften, als nur zu Lesen:

  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;

Wenn ich versuche, das zuweisen eines Wertes zu jedem der Mitglieder der Rec-Eigenschaft, ich werde "Linke Seite kann nicht zugeordnet werden" Fehler:

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

während Sie das gleiche mit der darunter liegenden Feld ist erlaubt:

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

Gibt es eine Erklärung für das Verhalten?

Hinsichtlich

InformationsquelleAutor der Frage vcldeveloper | 2009-03-06

Schreibe einen Kommentar