Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: In Events anderer Komponenten einklinken - Kreuzreferenz

  Alt 10. Jul 2006, 16:30
Hallo peinhard,

vergiss die verkettete Liste - Mehrfachbeziehungen zwischen Komponenten scheinen nicht dein Problem zu sein.

Beim Laden deiner Komponente aus dem DFM-Stream (Loaded) erkennst du, dass zur Entwurfszeit eine Komponente an die property Table zugewiesen wurde, welche über einen event handler OnNewRecord() verfügt, der gleichfalls zur Entwurfszeit festgelegt wurde. Was machst du, wenn der event handler der externen DataSet-Komponente, auf welche FTable verweist, zur Laufzeit geändert wird - nachdem deine Komponente intern bereits eigenen Code vorgeschaltet hat?

Damit will ich andeuten, dass man eine genauere Beschreibung der Funktionalität deiner Komponente braucht, um vernünftige und praktikable Vorschläge zur Implementierung machen zu können. Die Vorgabe eines surrogate key in deiner Vorschaltroutine ist wohl auch kein gutes Beispiel - diese Funktionalität wäre im eigentlichen event handler des DataSets wohl besser aufgehoben.

Zitat von Peinhard:
Und für eine verkettete Liste bräuchte man wohl eine Art 'Zentralinstanz', bei der sich sowohl die 'Lauscher' als auch die 'Belauschten' anzumelden hätten und die diese Liste dann eben 'zentral' verwalten könnte/müßte, sehe ich das richtig...?
Wenn du mit einer Zentralinstanz eine zusätzliche aktive Komponente meinst, dann nein. Du kannst die benötigte Observer-Funktionalität ja einfach in den event handler OnNewRecord() des DataSets packen und die Liste der Observer in einer ObjectList verwalten, welche du in DataSet.Tag mitführst.

Freundliche Grüße

marabu
  Mit Zitat antworten Zitat