Ich versteh das Problem nicht ganz, denn ich würde eine Assign- btw. AssignTo-Methode implementieren und damit das Problem umgehen.
Oder möchtest Du es kodekompatibel gestalten, um wenig Arbeit bei der Umwandlung von Record->Klasse zu haben? Das würde ich nicht machen, denn dein Code wäre nur sehr schwer zu verstehen. Per definitionem ist eine Zuweisung bei Objekten eine Zeigerzuweisung und keine Kopieroperation.
Oder meinst Du, das Du jeden Lesezugriff auf die Instanz kontrollieren möchtest, quasi einen Getter für 'Self'? Dann verwende vielleicht einen kleinen Wrapper:
Delphi-Quellcode:
Type
TObjectAccessSentinel = Class
private
Function GetObject : TMyObject; // <<--- hier deine Kontrollroutine für den Zugriff
Public
Constructor Create (aObject : TMyObject)
Property Object : TMyObject Read GetObject;
End;
Du erstellst dann den Wrapper und arbeitest nicht direkt mit (z.B.) V1, sondern mit dem Wrapper.