Moin Alaitoc,
ich glaube das ist noch nicht ganz was ich suche / vor habe. Aber es hat mich doch auf eine Idee gebracht.
Was ich definitiv brauche ist eine Art Bindeglied zwischen meinen Daten und meine Anzeige. Also nehmen wir mal ein weitaus einfacheres Beispiel. Einfach nur 2 Edits. Wenn ich in ein Edit einen String eintrage soll er nach Enter im anderen Edit erscheinen.
Nichts anderes möchte ich mit meinen Werten erreichen. Wir haben z.B. einen neu eingetragenen Wert in einer Grafik Serie und dieser Wert soll z.B. in einem Gauge dargestellt werden.
Aber bleiben wir der Einfachheit bei den Edits.
So wenn ich nun eine Universelle Schnittstelle schaffen will und verallgemeinert sage ich möchte generell den String vom Objekt X in Objekt Y anzeigen, dann müssen sich beide Edits erstmal bei dem "Bindeglied" anmelden. Das Bindeglied hält also eine Tabelle wo die Beziehungen definiert werden. Eine Spalte bilden die Eingangsgrößen ab und eine die Ausgangsgrößen. Im Fall von Alarmen müsste man ggf. noch ein Überprüfungskriterium mitgeben - führt aber im Moment zu weit.
Jetzt muss der User aus dieser Ein-Ausgangsliste seine Beziehungen herstellen. Eingang Object X -> Anzeige Object Y.
Was ich jetzt noch brauche ist eine Notifikation wenn sich bei den Eingangsobjkten etwas geändert hat. Im Fall von einem Edit könnte man dafür z.B. OnKeyUp verwenden. Sobald ein chr(13) festgestellt wird löst man die Notifikaation an das Bindeglied aus. Hier müsste man vermutlich mitgeben welche Objekteigenschaft sich nun geändert hat. Im Falle des Edits wäre es .Text.
Jetzt muss das Bindeglied nur noch dafür sorgen das die Objekteigenschaft von X gelesen wird und in Objekt Y eingetragen wird.
Stellt sich die Frage wie ich die Eigenschaft FormX.EditY.Text übergeben kann und damit meine ich nicht den resultierenden String. Auch als Pointer wird das wohl nicht klappen, denn dann müsste ich ja wissen was ich für einen Wert ich über den Pointer lesen will, oder?
Ließe sich das ggf. über
RTTI lösen? Hmm aber da es hier um die grundlegende Idee geht werde ich dazu mal einen neuen Fred auf machen.