Mit Hilfe von DSharp kann man von TComponent abgeleitete Klassen sehr einfach um Properties erweitern:
...
Dahinter steckt nicht viel mehr als ein Dictionary, in dem die Werte für die Instanzen gespeichert werden, inklusive FreeNotification, um die Werte für freigegebene Instanzen zu löschen.
Mit der FreeNotification von TComponent kann man die zusätzlichen Instanzen freigeben, wenn die zugehörige Original-Instanz freigegeben wird. Bei nicht von TComponent abgeleiteten Klassen fehlt dieser Mechanismust und man muss sich etwas anderes überlegen.