OK, dann trennen wir es sprachlich eben mehr an den APIs, als an der inneren Speicherung auf.
Direkte Casts/Offsets/Zugriffe in TObject, der Typ TypeInfo bzw.
Unit TypInfo und die
Unit RTTI.
In der TypeInfo, bzw. den bereitgestellten APIs, hast halt nicht auf alles Zugriff. (bzw. nicht so einfach/verständlich)
Da wurde ja doch schon so Einiges in den letzten Jahrzehnten nachgerüstet und zusätzlich noch die Möglichkeit alle Infos zu enumerieren.
Aber dafür ist der Zugriff mit der alten
API auf einzelne Infos direkter/einfacher. (nicht erst über den großen Context und dessen Interfaces die Einiges konvertieren und netter bereitstellen)
Schon bei den Attributen finde ich die ganze Sache mit den instanziirten Objekten bissl overdressed. (sonst ist dort ja auch alles auf einfachen Typen/Records/Arrays aufgebaut)
So wie sie alle nutzen, hätte da ein
array[..] of record name: string; values: array of const; end
vollkommen gereicht.
Nunja, nun wird da mit instanziirten Objekten gearbeitet und man kann im Constructor wunderschöne Dinde veranstalten.