Wenn Du magst, dann schau mal nach DSharp oder ssFramework. Beide realisieren ein Databinding.
Am ssFramework arbeite ich aber nicht mehr weiter.
(Embarcadero unterstützt ja inzwischen auch LiveBindings, aber da will ich mal nicht weiter drauf eingehen.)
Grundsätzlich kann man die Eigenschaften der Objekte direkt untersuchen und diese nach Namen ermitteln. Vor D2010 gab es dafür IsPublishedProp.
Damit kann man ermitteln, ob ein Objekt die veröffentlichte Eigenschaft XYZ besitzt und dessen Wert verarbeiten.
Ab D2010 gibt es mit der neuen
RTTI dafür noch deutlich mehr Möglichkeiten.
Wenn Deine Lösung so funktioniert würde ich es dabei belassen. Ein komplettes Databindingframework aufzubauen wird sich für ein (fast fertiges Projekt) nicht lohnen.
Wenn man aber von vorn herein eine solche Lösung verfügbar hat, dann kann man sich viel Arbeit sparen. Deshalb will ich ohne Databinding auch möglichst nicht mehr arbeiten.
Im Grunde kannst Du dann mit normalen Controls wie mit DBControls arbeiten und die an die Datenschicht binden. Die Datenschicht ist dann nur keine Datenbank sondern ein Manager, der das benötigte Objekt ermittelt und den Wert dessen benötigter Eigenschaft zurück gibt.