Grundsätzlich gibt es zwei Vorgehen:
1. Man erstellt zwei getrennte Komponenten, die gleich heißen oder einen gleichnamigen Alias besitzen.
Eine Runtime-Komponente und noch eine Designtimekomponente mit gleichem Namen/Alias.
Das ist vorallem dan ganz praktisch, wenn die Komponente sich im Formdesigner komplett anders verhält, wie zur Laufzeit,
bzw. wo man den Laufzeitcode komplett aus der
IDE raus halten will und dort nur einen Dummy für die Property haben möchte.
2. Man kann z.B. mit csDesigning DesignTime-Code, bzw. Runtime-Code jeweils (de)aktivieren.
2.5. Man ignoriert einfach alles und läßt sie Komponente überall gleich reagieren, bzw. man leitet ab, verwendet das Verhalten der bestehenden Komponente und beim eigenen Code ist es egal wo er läuft.
Mit SetSubComponent kann man vorallem das Verhalten steuern, wenn in einem öffentlichen Property eine "interne" Komponente sichtbar ist und man dort will, dass dessen (Unter)Property gespeichert werden.
Zusätzlich kann man selber "virtuelle" Property speichern. (siehe z.B. Left und Top bei den nichtvisuellen Komponenten ala TTimer, welche eigentlich keine solchen Property besitzen)
Wer der Owner ist, also die Form/Fram oder jemand Anders/Niemand, dass endscheidet auch, über das (automatische) Speichern der Komponente/Property.