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

Eingebaute Funktion sendmethod()

C-Funktionen DM_QueueExtEvent und DM_SendEvent im Handbuch „C-Schnittstelle - Funktionen“