2.13 :destroy()

Mit Hilfe dieser Methode können beliebige Objekte oder Modelle eines Dialogs gelöscht werden. Dabei werden alle Kinder des Objektes mit gelöscht.

Definition

boolean :destroy
(
  { boolean DoIt := false input }
)

Parameter

boolean DoIt := false input

Mit Hilfe dieses optionalen Parameters (Standardwert false) wird gesteuert, wie dieses Objekt gelöscht werden soll. Wenn hier true angegeben wird, werden das Objekt gelöscht und alle Regelteile, die dieses Objekt benutzen abgeändert, sodass die entsprechenden Anweisungen entfernt werden.

Wenn es sich bei dem zu löschenden Objekt um ein Modell handelt, wird und der Parameter ist false, dann wird das Modell nur gelöscht, wenn es von keinem anderen Objekt benutzt wird (Standard). Wird in diesem Fall true angegeben, dann wird das Modell gelöscht und die Objekte, die dieses Modell benutzen, beziehen sich wieder auf das nächsthöhere Modell bzw. den Default.

Rückgabewert

true
Objekt konnte gelöscht werden.
false
Objekt konnte nicht gelöscht werden.

Hinweis

:destroy() ruft die :clean()-Methode des Objekts auf.

Beispiel

dialog Beispiel

model window MWnDetail
{
  !! Detailanzeige von Datensaetzen
  .title "Detailanzeige der Daten";
  rule void GetData()
  {
    !! Holen der Daten
    !! Fenster sichtbar machen
    this.visible ::= true;
  }
  child pushbutton PbExit
  {
    .text "&Abbrechen";
    on select
    {
      !! zerstoert das Instanzen-Fenster
      this.window:destroy();
    }
  }
}

window WnMain
{
  .title "Daten\374bersicht";
  child tablefield TfData
  {
    !! enthaelt eine Datenuebersicht
    on dbselect
    {
      variable object NewObj := null;
      
      !! sichtbares Erzeugen
      !! NewObj ::= MWnDetail:create(this.dialog);
      !! unsichtbares Erzeugen
      NewObj ::= MWnDetail:create(this.dialog, true);
      NewObj:GetData();
    }
  }
}

Siehe auch

Eingebaute Funktion destroy() im Handbuch „Regelsprache“

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

COBOL-Funktion DMcob_Destroy im Handbuch „COBOL-Schnittstelle“