WinTreeNodeSearch
obj -> WinTreeNodeSearch(alpha1[, int2[, handle3]]) : handle
Knoten im Baum suchen
Details
- obj: Startobjekt der Suche: TreeView - oder TreeNode -Objekt
- alpha1: Suchtext
- int2:
- handle3: Referenzknoten für untergeordnete Suche
- Resultat:
handle>0Deskriptor des gefundenen Knotens=0Kein Knoten gefunden<0Fehlerwert - Siehe: Verwandte Befehle , TreeNode , TreeView ,
EvtNodeSearch, Blog
Mit diesem Befehl wird in einem TreeView -Objekt oder einem TreeNode -Objekt (obj) nach einem bestimmten TreeNode gesucht.
Wird als Startobjekt (obj) ein TreeNode -Objekt übergeben, wird standardmäßig auch in höheren Baumebenen weiter gesucht.
Folgende Optionen (int2) können angegeben werden:
_WinTreeNodeSearchCaptionVergleicht den Suchtext mitCaption-Eigenschaft des TreeNode -Objektes._WinTreeNodeSearchCustomVergleicht den Suchtext mitCustom-Eigenschaft des TreeNode -Objektes._WinTreeNodeSearchCIDie Groß-/Kleinschreibung wird bei der Suche ignoriert._WinTreeNodeSearchLikeFührt einen Wildcard-Vergleich durch._WinTreeNodeSearchLikeAutoFührt einen Wildcard-Vergleich durch. Der Suchtext wird automatisch mit*<Suchtext>*maskiert. Dies entspricht dem Verhalten im Designer._WinTreeNodeSearchTokenFührt eine begriffsorientierte Suche durch._WinTreeNodeSearchRegExVergleich mittels regulären Ausdrücken ._WinTreeNodeSearchChildrenOnlyNur untergeordnete Knoten werden durchsucht._WinTreeNodeSearchUpDie Suche wird nach oben durchgeführt._WinTreeNodeSearchNoSelectDer gefundene Knoten wird nicht ausgewählt._WinTreeNodeSearchStartDas Sucheingabefeld wird geöffnet. Hierbei wird das Sucheingabefeld mit dem Wert von (alpha1) vorbelegt. Für die Suche werden die restlichen angegebenen Optionen verwendet.
Die Prozedur bleibt beim Öffnen des Sucheingabefeldes nicht stehen. Dadurch ist der Rückgabewert der Funktion, bei Angabe dieser Option, immer 0 .
Mehrere Optionen können miteinander kombiniert werden. Die Kombination erfolgt durch eine binäre ODER-Verknüpfung .
Die Optionen _WinTreeNodeSearchLike , _WinTreeNodeSearchLikeAuto , _WinTreeNodeSearchToken und _WinTreeNodeSearchRegEx können nicht miteinander kombiniert werden.
Ist weder _WinTreeNodeSearchCaption noch _WinTreeNodeSearchCustom gesetzt wird trotzdem das Ereignis EvtNodeSearch aufgerufen.
Wird die Option (int2) _WinTreeNodeSearchChildrenOnly angegeben, kann in (handle4) ein Referenzknoten angegeben werden. Dabei wird nur unterhalb des Knotens (obj) vom Referenzknoten (handle4) ausgehend gesucht. Ist bei der Option kein Referenzknoten (handle4) angegeben, wird ab dem ersten untergeordneten Knoten gesucht.
Resultat
Wird ein TreeNode gefunden, ist das Resultat der Deskriptor des TreeNode -Objektes. Wurde kein TreeNode gefunden, ist das Resultat 0. Zusätzlich sind die folgenden Fehlerwerte möglich:
- Fehlerwert: Bedeutung
_ErrUnavailable: Der aktuell geprüfte Knoten wurde im EreignisEvtNodeSearchgelöscht. Daher kann die Suche nicht fortgesetzt werden._ErrRegExRuleSyntax: Syntaxfehler im regulären Ausdruck_ErrRegExBadEscapeSequence: Nicht aufgelöste Escape-Sequenz im Ausdruck_ErrRegExPropertySyntax: Ungültige Unicode-Eigenschaft_ErrRegExNotSupported: Verwendung einer Funktion, die nicht unterstützt wird_ErrRegExMismatchedParentheses: Falsch verschachtelte Klammern im regulären Ausdruck_ErrRegExNumberTooBig: Dezimalzahl zu groß_ErrRegExBadInterval: Fehler im {min,max} Intervall_ErrRegExMaxLtMin: Im Intervall {min,max} ist max kleiner als min_ErrRegExInvalidBackRef: Rückbezug auf eine nicht vorhandene Referenz_ErrRegExInvalidFlag: Ungültiger Modus_ErrRegExLookBehindLimit: Rückschau Ausdrücke müssen eine beschränkte maximale Länge haben_ErrRegExSetContainsString: Reguläre Ausdrücke können keine UnicodeSets mit Zeichenketten beinhalten_ErrRegExMissingCloseBracket: Fehlende schließende Klammer in einem Klammerausdruck_ErrRegExInvalidRange: In einer Zeichenmenge [x-y] ist x größer als y_ErrRegExStackOverflow: Stapelüberlauf in der Ablaufverfolgung des regulären Ausdrucks
Die Suche wird so lange durchgeführt, bis ein TreeNode gefunden, die Suche im Ereignis EvtNodeSearch mit dem Rückgabewert false abgebrochen oder das Startobjekt (obj) bzw. der Referenzknoten (handle4) bei _WinTreeNodeSearchChildrenOnly wieder erreicht wurde.
Beispiel:
// Findet alle untergeordneten TreeNodes, die mit '.doc' enden und ändert die Schriftart
for
{
tFirst # true;
tNodeFound # tNodeCurrent->WinTreeNodeSearch('*.doc', _WinTreeNodeSearchCaption | _WinTreeNodeSearchCI | _WinTreeNodeSearchLike | _WinTreeNodeSearchChildrenOnly | _WinTreeNodeSearchNoSelect);
tNodeRef # tNodeFound;
}
loop tNodeFound # tNodeCurrent->WinTreeNodeSearch('*.doc', _WinTreeNodeSearchCaption | _WinTreeNodeSearchCI | _WinTreeNodeSearchLike | _WinTreeNodeSearchChildrenOnly | _WinTreeNodeSearchNoSelect, tNodeFound);
while (tNodeFound > 0 and (tNodeFound != tNodeRef or tFirst))
{
tFirst # false;
tNodeFound->wpIndexData(_WinFlagIndexFont) # sIndexHighlight;
}
Mögliche Laufzeitfehler:
_ErrHdlInvalid: In (obj) oder (handle3) wurde kein gültiger Deskriptor eines TreeView - oder TreeNode -Objektes übergeben. In (int2) ist_WinTreeNodeSearchChildrenOnlygesetzt und (handle3) ist kein untergeordnetes TreeNode -Objekt von (obj)._ErrValueInvalid: Es wurde eine ungültige Kombination an Optionen (int2) übergeben.