Event-Handling: Tutorial / HowTo
-
Hallo zusammen.
Bin auf der Suche nach einem guten Tutorial zu dem Thema Event-Handling. Wenn möglich, dann in c++...
Habe schon länger gegoogelt, leider aber noch nichts wirklich brauchbares gefunden.
Kennt jemand ein gutes Tutorial / HowTo oder kann mir ein paar Tips dazu geben?MfG
Hundefutter
-
Hier gibt es einen Artikel zum Thema Events.
Außerdem kannst du dir dass Observer Pattern mal anschauen...
Gruß
Tobi
-
Naja, kommt drauf an, was du machen willst.
Wenn du nur eine Liste von bekannten Events hast die du werfen möchtest, innerhalb einer definierten Umgebung, braucht man das Observer-Pattern nicht unbedingt.
Ich hab das in einer kleinen Grafik-Engine für mich selbst als einfache Klasse implementiert:
Die Klasse "CEvent" wird instanziert und befüllt, mit den notwendigen Daten. Diese werden extra definiert als Struct.
Das ganze sendet man an "CEventManager", welcher nun alle angemeldeten "Listener" benachrichtigt. Listener wird eine Klasse, indem Sie eine pure virtual class implementieren und einen Zeiger auf sich selbst an "CEventManager" übergeben.
Vereinfachtes Beispiel um ein Maus-Event zu erzeugen:CMouseEvent event(MausX, MausY, &MausbuttonState); g_EventMgr->FireEvent(event);Aber wie gesagt, das ist eine Methode es zu machen und für bekannte Events.
Wenn du auch für unbekannte Events etwas anbieten möchtest, empfehle ich Dir auch unter Windos libsigC++ zu verwenden oder boost::signals.
Spart vieeeeel Arbeit :).
rya.
-
So, erst mal vielen Dank für dich schnellen Antworten.
Es soll eine Eventverwaltung für eine kleine 2D-Engine werden.
Habe noch nicht wirklich mit Events gearbeitet, bis jetzt nur etwas gelesen und mir gedacht, dass das wohl ganz nützlich sein würde.Werde mir die vorgeschlagenen Sachen mal angucken.
MfG
Hundfutter