RTTI kann nur mit Typen umgehen, die einen Namen haben, also per type declaration definiert worden sind. "On the fly" erzeugte Typen wie dein ^R gehören nicht dazu.
Hm.
Das scheint aber nur begrenz so zu sein ...
Für die Klasse
Code:
C4 = class
X: record F: string end;
end;
geht das sehr wohl, allerdings ist der Typname von X dann doch sehr kryptisch - :C4.:1
Ziemlich schräg.
Das liegt vermutlich daran, dass der record ein Feld enthält, für dessen Typ (string) der Compiler die Speicherverwaltung übernimmt.