Gut gut: Aber WARUM kann man nicht auf protected Felder eines Vorfahren zugreifen? Egal welche Workarounds es gibt und egal welche design flaws der Beispielcode beinhaltet.
Bummi hat es mit seiner kompakten Vierwortantwort bereits angedeutet:
Auf protected Felder kann nur innerhalb der eigenen Vererbungshierarchie zugegriffen werden. Diese Felder sind durch Zugriff von außen geschützt. Und die Klasse 'TB' ist für eine Instanz von TA nun mal 'außen', so wie jede andere Klasse auch.
Lustigerweise gibt es eine Hintertür, nämlich wenn 'TA' und 'TB' innerhalb der selben
Unit deklariert und implementiert werden. Frag mich nicht, wieso Delphi hier so blöd ist. Is aber so.