CteInsert
obj -> CteInsert(handle1[, int2[, handle3]]) : logic
Element in Liste/Baum einfügen
Details
- obj: Liste/Knoten
- handle1: Element
- int2:
- Einfügeposition bei verketteter Liste und Knoten (optional) Listenart bei Knoten (optional):
_CteFirst_CteLast_CteBefore_CteAfter
- handle3: Referenzelement (optional)
- Resultat:
logicEinfügeerfolg - Siehe: Verwandte Befehle ,
CteDelete (), Beispiel
Mit diesem Befehl wird ein Element in eine Liste oder einen Knoten eingefügt. Nach der Anweisung sollte das Resultat überprüft werden. Ist das Resultat false konnte das Element nicht eingefügt werden.
In Listen können alle Objekte außer Storage - und Binäre Objekte eingefügt werden.
Ein Element kann in eine verkettete Liste und/oder eine sortierte Liste eingefügt werden.
Einfügen in eine verkettete Liste
Das Element kann entweder am Anfang (siehe _CteFirst) oder am Ende der Liste (siehe _CteLast) eingefügt werden. Soll das Element vor oder nach einem bereits in der Liste enthaltenen Element eingefügt werden, wird _CteBefore bzw. _CteAfter in Verbindung mit dem Referenzelement (handle3) angegeben. Wird (int2) nicht angegeben, erfolgt das Einfügen am Ende der Liste.
Das Resultat ist false, wenn das Element bereits in einer Liste enthalten ist oder sich das Referenzelement nicht in der Liste (obj) befindet (bei Verwendung von _CteBefore oder _CteAfter).
Beispiele:
// Element an Listenanfang einfügen
tList->CteInsert(tItem, _CteFirst);
// Element an Listenende einfügen
tList->CteInsert(tItem, _CteLast);
// Element vor Referenzelement einfügen
tList->CteInsert(tItem, _CteBefore, tItem);
// Element nach Referenzelement einfügen
tList->CteInsert(tItem, _CteAfter, tItem);
Einfügen in eine sortierte Liste
Das Element wird anhand seiner Eigenschaft Name in die Liste einsortiert. Die Eigenschaft darf nicht leer sein.
Das Resultat ist false, wenn das Element bereits in einer sortierten Liste enthalten ist oder sich bereits ein Element mit gleichem Namen in der Liste befindet.
Beispiel:
// Element in Liste einsortieren
tList->CteInsert(tItem);
Einfügen in einen Knoten
Der Knoten wird entweder mit _CteChild als untergeordneter Knoten oder mit _CteAttrib als Attributknoten eingefügt. Standardmäßig wird _CteChild verwendet
Verfügt der Knoten über eine verkettete Liste, können auch die Optionen zur Positionierung verwendet werden.
Das Resultat ist false, wenn der Knoten bereits in einem Knoten enthalten ist oder, wenn der Knoten über eine sortierte Liste verfügt, sich bereits ein Knoten mit gleichem Namen in dem Knoten befindet.
Beispiele:
// Untergeordneten Knoten in Knoten einfügen
tNode->CteInsert(tNode, _CteChild);
// Untergeordneten Knoten als ersten Knoten in Knoten einfügen
tNode->CteInsert(tNode, _CteChild | _CteFirst);
// Attribuknoten als letzten Knoten in Knoten einfügen
tNode->CteInsert(tNode, _CteAttrib | _CteLast);
Mögliche Laufzeitfehler:
_ErrHdlInvalid: Liste/Knoten (obj), Element (handle1) oder Referenzelement (handle3) ungültig_ErrValueInvalid: Einfügeposition (int2) unbekannt