Das Suchen in Bäumen

In der CONZEPT 16-Version 5.7.04 haben wir den Bäumen des Designers eine Suchfunktion spendiert. Nun werden wir diese auch dem CONZEPT 16-Entwickler zur Verfügung stellen, sodass die Suchfunktion in der eigenen Applikation, also zur Laufzeit, genutzt werden kann. Wie Sie die Suche verwenden können, wird in diesem Artikel beschrieben.


Komplexe Baumstrukturen können schnell unübersichtlich werden. Beispielsweise ein Baum, der eine Verzeichnisstruktur abbildet. Er besitzt mehrere Ordner, Unterordner und Dateien. Wird nun eine spezielle Datei gesucht, kann das unter Umständen in einem sehr langem „Durchgeklicke“ enden. Daher wurde das TreeView-Objekt um eine Suchmöglichkeit erweitert.

Suche verwenden
Suche im TreeView

Nichts leichter als das! Zum Verwenden der Suche muss lediglich die neue Eigenschaft wpSearchEnabled des TreeView-Objekts auf true gesetzt werden. Gesucht wird über den Anzeigetext der enthaltenden Knoten. Dafür werden standardmäßig folgende Tasten verwendet:

  • Ctrl + F – Startet die Suche
  • F3 – Findet den nächsten Treffer
  • Shift + F3 – Findet den vorherigen Treffer

Die Tasten bzw. Tastenkombinationen sind in Eigenschaften definiert und können individuell angepasst werden.

Zusätzlich gibt es die Möglichkeit mit dem neuen Befehl WinTreeNodeSearch() auch prozedural nach einem Knoten zu suchen.

Erweiterte Suchmöglichkeiten

Die Suche durchläuft alle Knoten des TreeViews und vergleicht den Suchausdruck mit der Eigenschaft wpCaption, wahlweise auch wpCustom, des Knotens. Auf welche Weise dabei verglichen wird, kann der Entwickler entscheiden. Neben einer WildCard-Suche stehen auch reguläre Ausdrücke und eine begriffsorientierte Suche zur Verfügung.

Außerdem gibt es die Möglichkeit ganz eigene Suchalgorithmen zu implementieren. Dafür wurde das TreeView-Objekt um das Ereignis EvtNodeSearch erweitert. Dieses wird für jeden Knoten, der bei der Suche durchlaufen wird, aufgerufen. Hier könnte beispielsweise ein interner Text, der zu einem Knoten gehört, nach dem Suchbegriff, durchsucht werden. Ist dieser enthalten, kann der entsprechende Knoten als Treffer markiert werden. Die Suche endet, sobald ein Knoten als Treffer gilt, der Baum einmal komplett durchlaufen wurde oder der Benutzer die Suche abbricht.

sub EvtNodeSearch
(
  aEvt                  : event;            // Ereignis
  aNode                 : handle;           // Knoten
  aPattern              : alpha;            // Suchbegriff
  aFlags                : int;              // Suchoptionen
  aAction               : int;              // [in, out] Aktion
)
: logic;                                    // Suche fortsetzen?
{
  // Anfangszeitpunkt der Suche merken
  if (gSearchStart = 0)
    gSearchStart # SysTics();
  // Wenn interner Text zu dem Knoten Suchausdruck beinhaltet
  // Knoten als Treffer markieren
  if (aNode->Node.TextContains(aPattern))
    aAction # _WinTreeNodeSearchFound;
  if (aAction & _WinTreeNodeSearchFound != 0)
    gSearchStart # 0;
  // Suche nach 30 Sekunden abbrechen
  if (SysTics() - gSearchStart > 30000)
  {
    gSearchStart # 0;
    return (false);
  }
  return (true);
}

Klicken Sie hier, um die Nutzungsbedingungen für unseren Blog zu lesen.

Eine Antwort

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Leave the field below empty!

Wünsche, Fragen oder Feedback sind willkommen:

Nutzungsbedingungen der Kommentarfunktion im Blog

1. Allgemeines

Vectorsoft AG („Anbieter“) stellt für Internetnutzer („Nutzer“) auf der Website
vectorsoft.de einen öffentlichen Blog bereit. Der öffentliche Blog dient dem
Informations- und Gedankenaustausch. Die Nutzer, welche sich mit Beiträgen und
Kommentaren beteiligen, verpflichten sich dazu, die Blog-Nutzungsbedingungen
einzuhalten und tragen die Verantwortung für die Richtigkeit und Angemessenheit
sowie Freiheit von Rechtsverletzungen ihrer Beiträge. Mit Nutzung der
Kommentarfunktion in unserem Blog akzeptieren Sie diese Nutzungsbedingungen.

2. Netiquette

Wir bitten Sie von persönlichen Angriffen und Provokationen aufgrund anderer
Meinungen abzusehen. Bitte argumentieren Sie sachlich und bewegen Sie sich auf
der Basis einer konstruktiven Diskussionskultur. Ihr Kommentar sollte stets im
Zusammenhang mit dem jeweiligen Thema sein, um Ausschweifungen in andere
Themenbereiche zu vermeiden. Das mehrmalige Posten desselben Kommentars
oder mehrerer ähnlicher Kommentare ist nicht erlaubt.

3. Verbot rechtswidriger Inhalte

Mit Absenden Ihres Kommentars bestätigen Sie, dass Sie keine Urheberrechte oder andere Rechte Dritter verletzen. Volksverhetzende, rassistische Äußerungen, Anleitungen zu Straftaten und deren Verherrlichung, Gewaltdarstellungen, pornografische Inhalte und Äußerungen, die Persönlichkeitsrechte verletzen sind untersagt.

4. Keine Werbung

Die Nutzung der Kommentarfunktion ist für kommerzielle oder parteipolitische
Zwecke nicht erlaubt. Werbliche Beiträge aller Art werden von uns umgehend
gelöscht.

5. Angaben zum Namen

Bei der Eingabe Ihres Namens achten Sie auf die zuvor genannten Grundsätze.

6. Quellenangaben

Bitte geben Sie bei der beabsichtigten Veröffentlichung von Zitaten oder Beiträgen
Dritter die jeweiligen Quellen an und erläutern dessen Bezug zum Blogbeitrag.

7. Verstoß gegen die Nutzungsbedingungen

Beiträge, die gegen diese Richtlinie verstoßen werden umgehend gelöscht. Sollten
Sie selbst Verstöße bemerken, so senden Sie uns bitte den Link des betreffenden
Kommentars per E-Mail an . Wir weisen ausdrücklich daraufhin, dass wir einzelne Nutzer bei wiederholten oder schweren Verstößen gegen diese
Nutzungsbedingungen ausschließen werden.

Stand: Sept. 2024

Deine Trial Version - jetzt anfordern!

Teste yeet - unverbindlich und kostenfrei

IHRE EVALUIERUNGSLIZENZ - JETZT ANFORDERN!

TESTEN SIE DIE CONZEPT 16 VOLLVERSION - UNVERBINDLICH und KOSTENFREI

Melden Sie sich bei unserem Newsletter an

Anrede*
     
Zustimmung zur Datenverarbeitung gem. DSGVO*



WordPress Cookie-Hinweis von Real Cookie Banner