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?