11.8 create()

Mit Hilfe dieser Funktion können zur Laufzeit neue Objekte innerhalb des Dialog Managers generiert werden. Diese Funktion liefert als Ergebnis das neu generierte Objekt zurück.

Definition

object create
(
      object  Class  input,
      object  Parent input
  { , object  Dialog input }
  { , integer Type   := 3 input }
  { , boolean CreateInvisible := false input }
)

Parameter

object Class input
Dieser Parameter bezeichnet das Objekt, von dem eine neue Instanz erstellt werden soll. Damit kann das Objekt also ein Default oder eine Vorlage sein.
object Parent input
Dieser Parameter bezeichnet den Vater des Objektes.
object Dialog input
Dieser optionale Parameter bezeichnet den Dialog, zu dem das Objekt gehören soll.
integer Type := 3 input

Mit diesem optionalen Parameter können Sie angeben, ob Sie einen Default, ein Modell oder ein Objekt erzeugen wollen (optional). Dabei erzeugt:

1
Default
2
Modell
3
Objekt

Wenn dieser Parameter nicht angegeben ist, wird automatisch ein Objekt generiert.

boolean CreateInvisible := false input

In diesem optionalen Parameter wird angegeben, ob das Objekt unsichtbar oder wie in der Vorlage definiert generiert werden soll. Dabei bedeutet

true
Das Objekt wird immer unsichtbar angelegt.
false
Sichtbarkeit wird aus Modell oder Default übernommen.

Rückgabewert

objectId
Id des neu generierten Objekts.
null
Null-ID, da das Objekt nicht generiert werden konnte.

Beispiel

dialog Beispiel
{
}
model window MWnDetail
{
  !! Detailanzeige von Datensätzen
  .title "Detailanzeige der Daten";

  rule void GetData()
  {
    !! Holt sich die Daten wie abgesprochen
    !! macht Fenster sichtbar
    this.visible ::= true;
  }

  child pushbutton PbExit
  {
    .text "&Abbrechen";

    on select
    {
      !! Zerstört das Instanzen-Fenster
      destroy(this.window);
    }
  }
}

window WnMain
{
  .title "Datenübersicht";

  child tablefield TfDaten
  {
    !! Enthält eine Datenübersicht
    on dbselect
    {
      variable object NewObj := null;

      !! sichtbares Erzeugen:
      !! NewObj ::= MWnDetail:create(this.dialog);
      !! unsichtbares Erzeugen:
      NewObj ::= create(MWnDetail , this.dialog, true);
      NewObj:GetData();
    }
  }
}

Siehe auch

Methode :create()

C-Funktion DM_CreateObject im Handbuch „C-Schnittstelle - Funktionen“

COBOL-Funktion DMcob_CreateObject im Handbuch „COBOL-Schnittstelle“