Toon posts:

[c++] op meerdere plekken event afvangen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Als een event is afgevuurt moet op meerdere plekken een actie worden ondernomen (in meerdere classes)

Ik heb dus het volgende in de hoofdclass (OrderManager) waar het event wordt afgevuurt:
typedef void __fastcall (__closure *OrderEvent)(Order *order);
OrderEvent OnOrderAdded;
__property OrderEvent OrderAdded = {read=OnOrderAdded, write=OnOrderAdded};

In het hoofdscherm heb ik dan een listeren:
orderManager->OrderAdded = OrderAdded;

In een tweede scherm heb ik ook een listener:
orderManager->OrderAdded = OrderAdded;

Echter is mijn probleem dat op deze manier maar op één plaats het event wordt afgevangen, 'k den dat de property wordt overschreven.
En met zoiets als dit krijg ik een foutmelding:
orderManager->OrderAdded += OrderAdded;

Misschien kan iemand een tip geven

  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
Als 'orderManager' dezelfde instantie is, zal de propertie 'OrderAdded' inderdaad overschreven worden. Misschien moet je eens kijken/zoeken naar het 'Observer' design pattern.

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


Verwijderd

Topicstarter
Feyd-Rautha schreef op woensdag 30 augustus 2006 @ 10:59:
Als 'orderManager' dezelfde instantie is, zal de propertie 'OrderAdded' inderdaad overschreven worden. Misschien moet je eens kijken/zoeken naar het 'Observer' design pattern.
Heel mooi, om de onderstaande link wordt goed uitgelegd hoe Observer geimplementeerd kan worden, handig voor als nog meer mensen dit probleem hebben.
http://www.codeproject.com/cpp/CppEvents.asp

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 10-12-2025
Misschien handig om even een TR Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/icon_hand.gif te doen - standaard C++ heeft geen __property en __closure. Welke extensie is dit?

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein