Der Zugriff auf ein Record erfolgt ja anders als bei einer Klasseninstanz.
Wir machen das Gleiche erhalten aber unterschiedliche Ergebnisse.
...
Bei einer Instanz wird halt die Referenz übergeben, ein Record wird bei einer Zuweisung dupliziert!
Warum der Record in diesem Fall nicht verändert werden kann liegt daran, dass über den Enumerator der Record quasi wie eine RO-Property geliefert wird, und dann ist auch das Record RO.
Delphi-Hilfe:
E2064: Der linken Seite kann nichts zugewiesen werden (Delphi)
Ähm... deshalb übergibt man den entsprechenden
RTTI Methoden auch immer einen Pointer.
Egg Yes ... Ei Jo ...
aber dann schau dir mal den TLinq-Demo Code an:
Delphi-Quellcode:
var
v : TMyRecord;
...
for v in RecordLinq do
v.Value := Random( 100 ); // hier kommt beim Compilieren der Fehler E2064
...
darauf spielte mein Kommentar an
Kaum macht man's richtig - schon funktioniert's

Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)