11.42 sendevent()
Sie können mit Hilfe der Funktion sendevent() externe Ereignisse in Regeln an andere Objekte verschicken. Zur Zuordnung dient der EventID-Parameter, welcher mit einer Zahl wie auch mit jedem anderen beliebigen Wert (z.B. einer vorher definierten message-Ressource) belegt werden kann. An dem im Object-Parameter angegebenen Objekt muss ein entsprechendes externes Ereignis definiert sein.
Definition
void sendevent
(
object Object input,
anyvalue EventID input
{ , anyvalue Arg1 input }
...
{ , anyvalue Arg14 input }
)
Parameter
- object Object input
- Objekt, an welches das externe Ereignis verschickt wird.
- anyvalue EventID input
- Eindeutiger Identifikator für das Ereignis.
- anyvalue Arg1 input
…
anyvalue Arg14 input - Parameter des externen Ereignisses.
Anmerkungen
Werden im Parameter EventID Objekte, beispielsweise message-Ressourcen, genutzt, so sollten diese Objekte keinesfalls vor der asynchronen Verarbeitung des Ereignisses zerstört werden. Ansonsten kann das Ereignis nicht mehr zugeordnet werden.
Außerdem ist darauf zu achten, dass das genutzte Ereignis (siehe auch Kapitel „Externe Ereignisse“) maximal 14 Parameter benötigt, da durch die Limitierung auf 16 Parameter in der Regelsprache durch die Funktion sendevent() nicht mehr Parameter übergeben werden können (die ersten zwei Parameter sind mit Objekt bzw. Ereignis fest belegt).
Bitte vermeiden Sie jegliche Zyklen in Messages. Dies kann Endlosschleifen verursachen.
Beispiel
dialog ExampleDialog on dialog start { sendevent(ExampleDialog, 42, "Answer"); } on dialog extevent 42 (string Question) { print Question; exit(); }
Siehe auch
C-Funktionen DM_QueueExtEvent und DM_SendEvent im Handbuch „C-Schnittstelle - Funktionen“