2.4 :call()

Mit Hilfe der Methode :call() lassen sich beliebige eingebaute als auch benutzerdefinierte Methoden aufrufen. Dieses ist z.B. dann notwendig, wenn die Methode, die aufgerufen werden soll, berechnet wird oder in einer Variablen gespeichert ist. Der Aufruf von :call() ruft indirekt die angegebene Methode auf. Der Rückgabewert entspricht dem der indirekt aufgerufenen Methode. Beim Aufruf über :call() können jedoch nur maximal 15 weitere Parameter an die indirekt aufgerufene Methode übergeben werden. Hierauf ist beim Design von Methoden zu achten. Die Methode :call() kann auch eingebaute Methoden wie etwa :insert() oder :delete() aufrufen.

Definition

anyvalue :call
(
     method   Method input
  { ,anyvalue Arg1   input }
  ...
  { ,anyvalue Arg15  input }
)

Parameter

method Method input
In diesem Parameter wird die aufzurufende Methode angegeben.
anyvalue Par1 input

anyvalue Par15 input
In diesen optionalen Parametern werden die Parameter der aufzurufenden Methode angegeben. Die Anzahl der angegebenen Parameter muss dabei der Anzahl der Parameter der aufzurufenden Methode entsprechen.

Rückgabewert

Rückgabewert der aufgerufenen Methode.

Objekte mit dieser Methode

Alle Objekte, die benutzerdefinierte Methoden haben können bzw. eingebaute Methoden haben.

Beispiel

dialog Example

record Rec
{
  string String;
  rule void SomeMethod() { }
  rule boolean Display(object Obj input) { }
}

on dialog start
{
  Rec:call(:SomeMethod);     // ruft die Methode SomeMethod auf
  Rec:call(:Display, this);  // ruft die Methode Display
                             // mit dem Dialog als Objekt auf
}

Siehe auch

Methode :recall()