2.166 .index

Mit Hilfe dieses Attributes kann beim Ereignisobjekt thisevent die Selektion eines bestimmten Listbox- Poptext- oder Tablefieldeintrags abgefragt werden (gültig nur beim select-Ereignis).

Bei auf dem Bildschirm darstellbaren Objekten, kann mit Hilfe des Attributs .index erfragt werden, das wievielte Kind das angegebene Objekt ist.

Definition

  • Datentyp

    integer, index

  • Zugriff

    get

Bedeutung beim Objekt thisevent

Mit Hilfe dieses Attributes kann beim Ereignisobjekt thisevent die Selektion eines bestimmten Listbox- bzw. Poptexteintrags abgefragt werden (gültig nur beim select-Ereignis bei Listbox und Poptext (Combobox); Datentyp integer).

Ebenso kann mit Hilfe dieses Attributes beim Ereignisobjekt thisevent die Selektion eines bestimmten Tablefields abgefragt werden (gültig nur beim select-Ereignis bei Tablefield; Datentyp index).

Siehe auch

Kapitel „Ereignisobjekt thisevent“ im Handbuch „Regelsprache“

Bedeutung bei normalen Objekten

Bei normalen, d.h. auf dem Bildschirm darstellbaren Objekten, kann mit Hilfe des Attributs .index erfragt werden, das wievielte Kind das angegebene Objekt ist. Damit kann man sich also die Suche nach dem Objekt in der Liste der Kinder eines Vater sparen, man kann direkt auf den entsprechenden Index zugreifen. Dieses Attribut gibt einen integer Wert zurück, der anzeigt, das wievielte Kind dieses Objekts bei seinem Vater ist. Über dieses Attribut lässt sich dann sehr einfach der Nachfolger bzw. Vorgänger des Objekts beim Vater-Objekt berechnen.

Damit sind die nachfolgenden Konstrukte möglich:

this.parent.child[this.index] = this
NextChild     := this.parent.child[this.index + 1];
PreviousChild := this.parent.child[this.index - 1];

Beispiel

variable object Next;
variable object Previous;
Next     := this.parent.child[this.index+1];
Previous := this.parent.child[this.index-1];

Wie im Dialog Manager üblich, muss man bei diesen Abfragen auf den Wertebereich des Indexes achten. Er ist definiert durch

1 <= index <= Anzahl der Kinder

Ein child[0] existiert im Dialog Manager nicht und erzeugt einen Index-Range Fehler, ebenso wenn der Index größer als .childcount ist.

Das Attribut .index ist ebenfalls für Menüs und Records zulässig. Bei Menüs kann damit abgefragt werden, das wievielte Kind ein Menüeintrag ist; bei Records kann man damit die im Record enthaltenen benutzerdefinierten Attribute sequentiell bearbeiten.

Mit dem Modulo-Operator kann auch zirkuläres Suchen in der Regelsprache programmiert werden.

Beispiel

variable object  Parent     := this.parent;
variable integer ChildCount := Parent.childcount;
while CurrentChild <> this do
  print CurrentChild;
  CurrentChild := Parent.child[CurrentChild % ChildCount + 1];
endwhile