Hallo,
ich implementiere gerade eine Observer Pattern. Hierzu muss ich mir sämtliche Observer in einer dynamischen Liste von TObjects merken.
Später will ich auf diesen Objekten die Methode "Notify" aufrufen. Sprich ich muss diese Objekte nach IObserver casten. (IObserver enthält die Vereinbarung über die Notify Methode).
Normalerweise müsste ich folgendes schreiben:
Delphi-Quelltext
1:
| IObserver(MyList.Items[i]).Notify(); |
oder
Delphi-Quelltext
1:
| (MyList.Items[i] as IObject).Notify(); |
Diese Ansätze funktionieren leider nicht. Die Variante mit "as" könnte ich nur einsetzen, wenn TObject immer das Interface IObserver implementieren würde.
Gibt es hierfür einen Trick, oder ist dieser Anwendungsfall wirklich nicht vorgesehen ?!?!
Besten Dank im Voraus!
Tobias
Moderiert von
Narses: Topic aus Sonstiges (Delphi) verschoben am Mo 10.05.2010 um 00:28
Moderiert von
Narses: B- durch Delphi-Tags ersetzt