2.12 :delete()

Die Methode :delete() gibt es in drei verschiedenen Ausprägungen:

2.12.1 :delete() (Listenobjekte)

Mit Hilfe dieser Methode können Zeilen und Spalten aus dem Inhalt eines Objektes gelöscht werden, wenn der Inhalt dieses Objekts aus mehreren, mit integer oder index indizierten, Einträgen besteht. Zusammen mit dem Inhalt werden auch die dazugehörenden Attribute gelöscht.

Im Unterschied zur :clear()-Methode werden mit :delete() Zeilen bzw. Spalten vollständig gelöscht, d.h. die Anzahl der Zeilen bzw. Spalten verringert sich durch :delete().

Definition

boolean :delete
(
      integer Position input
  { , integer Count := 1 input }
  { , boolean Direction := false input }
)

Parameter

integer Position input
Dieser Parameter definiert die Position, ab der die Zeilen bzw. Spalten gelöscht werden sollen.
integer Count := 1 input
Mit diesem optionalen Parameter wird die Anzahl der zu löschenden Zeilen bzw. Spalten festgelegt. Wird der Parameter nicht angegeben, so wird 1 angenommen.
boolean Direction := false input

Dieser optionale Parameter steuert beim tablefield, ob Zeilen oder Spalten gelöscht werden. Dies ist abhängig vom Wert des tablefield-Attributs .direction.

Der Parameter darf nur beim tablefield angegeben werden. Bei anderen Objekten als dem tablefield führt die Angabe des Parameters zu einem Fehler.

Wertebereich

false
Löschen entgegen der vom Attribut .direction angegebenen Richtung
true
Löschen in der vom Attribut .direction angegebenen Richtung

Damit werden beim tablefield folgende Inhalte gelöscht:

Parameter Direction

.direction 1 (vertikal)

.direction 2 (horizontal)

false

Zeile(n)

Spalte(n)

true

Spalte(n)

Zeile(n)

Rückgabewert

Die Methode gibt true zurück, wenn die Zeilen bzw. Spalten gelöscht werden konnten.

Wenn beim Löschen ein Fehler aufgetreten ist, gibt die Methode ein fail zurück.

Objekte mit dieser Methode

Beispiel

dialog D

window Wn
{
  .title "Beispiel fuer die Methode :delete()";

  child treeview Tv
  {
    .content[1] "Firma A";
    .content[2] "Mueller";
    .content[3] "Mayer";
    .content[4] "Firma B";
    .content[5] "Schulz";
    .content[6] "Schmidt";
    .content[7] "Fischer";
    .style[style_lines]   true;
    .style[style_buttons] true;
    .style[style_root]    true;
    .level[2] 2;
    .level[3] 2;
    .level[5] 2;
    .level[6] 2;
    .level[7] 2;
  }

  child pushbutton Pb
  {
    .text "Entferne einen Mitarbeiter";

    on select
    {
      Tv:delete(Tv.activeitem);
    }
  }
}

2.12.2 :delete() (Felder)

Mit Hilfe dieser Methode können Elemente aus Feldern (indizierten benutzerdefinierten Attributen) gelöscht werden.

Im Unterschied zur :clear()-Methode werden die Elemente mit :delete() vollständig gelöscht, d.h. die Anzahl der Elemente verringert sich.

Definition

boolean :delete
(
      attribute Attr input,
      anyvalue Position input
  { , integer Count := 1 input }
)

Parameter

attribute Attr input
Dieser Parameter definiert das benutzerdefinierte Attribut, auf das die Methode angewendet werden soll.
anyvalue Position input

In diesem Parameter wird der Index übergeben, ab dem die Elemente gelöscht werden sollen. Bei nicht-assoziativen Feldern hat Position den Datentyp integer, bei assoziativen Feldern den Datentyp, mit dem das assoziative Feld indiziert ist.

Der Wertebereich für Position bei nicht-assoziatven Feldern ist 0 … .count[Attr], d.h. es kann auch der Standardwert gelöscht werden. Wird der Standardwert gelöscht, dann wird der Wert des ersten Elements nach den gelöschten Elementen zum Standardwert.

integer Count := 1 input

Dieser optionale Parameter definiert die Anzahl der zu löschenden Elemente. Wird der Parameter nicht angegeben, so wird 1 angenommen.

Count kann bei assoziativen Feldern nicht verwendet werden, es kann immer nur 1 Element gelöscht werden.

Rückgabewert

Die Methode gibt true zurück, wenn die Elemente gelöscht werden konnten.

Wenn beim Löschen ein Fehler aufgetreten ist, gibt die Methode ein fail zurück.

Objekte mit dieser Methode

Alle Objekte, die benutzerdefinierte Attribute haben können.

Siehe auch

Kapitel „Methoden für Arrays benutzerdefinierter Attribute“ im Handbuch „Benutzerdefinierte Attribute und Methoden“

Kapitel „Arbeiten mit assoziativen Arrays“ im Handbuch „Benutzerdefinierte Attribute und Methoden“

2.12.3 :delete() (doccursor)

Löscht den DOM-Knoten mit allen Kindknoten. Der XML-Cursor wird auf den Vaterknoten positioniert. XML-Cursor, die in den Unterbaum des gelöschten DOM-Knotens zeigen, werden ungültig. Bei einem ungültigen XML-Cursor besitzt das Attribut .mapped den Wert false.

Werden die Werte des Attributs .path woanders gespeichert (zum Beispiel im Attribut .userdata), dann ist zu beachten, dass diese gespeicherten Werte nicht angepasst werden, wenn die Struktur des DOM-Baums verändert wird. Ein anschließender Aufruf der Methode :select mit einem dieser gespeicherten Werte, kann demzufolge den XML-Cursor auf einen falschen DOM-Knoten zeigen lassen.

Definition

boolean :delete
(
)

Parameter

Keine.

Rückgabewert

true
DOM-Knoten konnte gelöscht werden.
false
Beim Löschen ist ein Fehler aufgetreten.

Objekte mit dieser Methode

doccursor