Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: RTTI records & SetValue

  Alt 6. Sep 2011, 20:40
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)
  Mit Zitat antworten Zitat