Einzelnen Beitrag anzeigen

lxo

Registriert seit: 30. Nov 2017
258 Beiträge
 
Delphi 12 Athens
 
#1

Record Property verschachtelt - Schreibzugriff

  Alt 30. Mär 2021, 08:19
Hallo,

mir ist vorhin aufgefallen, dass man bei verschachtelten Records keine Werte zuweisen kann.
Warum ist das so oder hab ich da irgendwie einen Denkfehler?

Delphi-Quellcode:
  TTestRec1 = record
  public
    IntValue: Integer;
  end;

  TTestRec2 = record // <- Wenn man das Record als Klasse deklariert funktioniert es
  public
    Test1: TTestRec1;
  end;

  TTestObj1 = class( TObject)
  private
    FTest2: TTestRec2;
  public
    property Test2 : TTestRec2 read FTest2 write FTest2;
  end;

...

procedure TForm53.FormCreate(Sender: TObject);
var
  ltest: TTestObj1;
begin
  ltest := TTestObj1.Create;
  ltest.Test2.Test1.IntValue := 10; // <- "Der linken Seite kann nichts zugewiesen werden"
  ltest.FTest2.Test1.IntValue := 10; // <- Funktioniert
end;
Mache ich aus TTestRec2 eine Klasse oder wenn ich statt auf die Property Test2 direkt auf FTest2 zugreife, funktioniert es.
Aber warum kann man da nichts eintragen wenn man die Property nutzt?
  Mit Zitat antworten Zitat