EvtNodeSearch
EvtNodeSearch
TreeNode wird bei TreeView -Suche geprüft
Details
- Name: Typ Beschreibung
- aEvt:
eventEreignisinformationen - aNode:
handleDeskriptor des aktuell zu prüfenden TreeNode -Objektes - aPattern:
alphaSuchtext - aFlags:
intSuchoptionen - aAction:
intAktion - Resultat:
logicSuche fortsetzen? - Siehe: Liste , Objekte , Ereignisbefehle ,
WinTreeNodeSearch ()
Dieses Ereignis wird für jedes TreeNode -Objekt aufgerufen, das bei der Suche durchlaufen wird.
Definition des Funktionskopfes:
sub EvtNodeSearch
(
aEvt : event; // Ereignis
aNode : handle; // Knoten
aPattern : alpha; // Suchtext
aFlags : int; // Suchoptionen
aAction : int; // Aktion
)
: logic; // Suche fortsetzen?
{
return(true);
}
aEvt
In aEvt vom Typ event wird unter anderem der Deskriptor des auslösenden Objekts übergeben.
aNode
Im Argument aNode wird der Deskriptor des aktuellen TreeNode -Objektes übergeben, der verglichen werden soll.
aPattern
In diesem Argument wird der eingegebene Suchtext übergeben.
aFlags
Das Argument aFlags beinhaltet die Optionen, die an WinTreeNodeSearch () übergeben wurden, wenn die Suche über diese Funktion gestartet wurde. Beim Start über SearchKeyStart werden die SearchFlags übergeben. Zusätzlich kann aFlags _WinTreeNodeSearchWrap enthalten, wenn der Anfang (_WinTreeNodeSearchUp) oder das Ende des TreeView -Objektes bzw. des Eltern-Knotens (mit Option _WinTreeNodeSearchChildrenOnly) erreicht wurde.
aAction
Im Argument aAction wird das weitere Verhalten der Suche definiert. Beim Aufruf des Ereignisses wird einer der Werte vorbelegt. In diesem Ereignis kann das Argument verändert werden um den weiteren Verlauf der Suche zu beeinflussen. Folgende Konstanten sind möglich:
_WinTreeNodeSearchSkipDer aktuelle TreeNode wird ignoriert. Dies ist der Standardwert, wenn der Suchtext nicht gefunden wird._WinTreeNodeSearchFoundDer aktuelle TreeNode gilt als Treffer. Die Suche wird beendet und der Knoten selektiert, sofern inaFlagsnicht_WinTreeNodeSearchNoSelectgesetzt ist._WinTreeNodeSearchSkipChildrenDie Kinder des inaNodeübergebenen TreeNode werden nicht verglichen und die Suche läuft weiter. Ist inaFlags_WinTreeNodeSearchUpgesetzt, wird nur der aktuelle TreeNode ignoriert.
Wenn der Vergleich mit der Caption bzw. Custom, sofern in den Suchoptionen (aFlags) definiert, eine Übereinstimmung liefert, steht in aAction der Wert _WinTreeNodeSearchFound und muss, damit der Knoten als Treffer gilt und selektiert wird nicht verändert werden. Somit gibt aAction Auskunft darüber ob der interne Vergleich ein Treffer war (_WinTreeNodeSearchFound) oder nicht (_WinTreeNodeSearchSkip).
Resultat
Wird true zurückgegeben, wird die Suche fortgesetzt, bis in aAction der Wert _WinTreeNodeSearchFound zurückgegeben oder das Startobjekt der Suche wieder erreicht wird. Bei false wird die Suche abgebrochen und der Wert in aAction ignoriert.
Das Ereignis EvtNodeSearch wird, für die Tasten SearchKeyNext und SearchKeyPrev , vor dem Ereignis EvtKeyItem ausgelöst.
Beispiel:
sub EvtNodeSearch
(
aEvt : event; // Ereignis
aNode : handle; // Knoten
aPattern : alpha; // Suchtext
aFlags : int; // Suchoptionen
aAction : int; // Aktion
)
: logic; // Suche fortsetzen?
{
// Nur Knoten finden, deren ID > 0 ist
if (aNode->wpID > 0)
aAction # _WinTreeNodeSearchFound;
// Unterknoten von Knoten ignorieren, deren ID < 0 ist
else if (aNode->wpID < 0)
aAction # _WinTreeNodeSearchSkipChildren;
return(true);
}