kurz gesagt: sowas ist bedingt (also fast nie) möglich
Du kannst nur ganze Records zuweisen, abe keine einzelnen Recordteile.
Delphi macht aus (unter der Voraussetzung TSpsData ist ein Record)
SpsTest.DataWrite.Counter2 := x;
Delphi-Quellcode:
property DataWrite: TSpsData read FDataWrite write GetDataWrite;
// GetDataWrite = 'nen symbolischer Getter, damit man es besser erkennt
SpsTest.GetDataWrite.Counter2 := x;
bzw.
InternalTempVar := SpsTest.GetDataWrite;
InternalTempVar.Counter2 := x;
Delphi spricht entwder den Setter oder den Getter an ... niemals Beides (leider).
da hier praktisch zuerst gelesen wird, wird auch nur der Getter genutzt
und da hier nur eine TempVariable geändert wird, landen die Daten nie in der Klasse.