Jak zlokalizować węzeł TreeView według tekstu
ivcandy/DigitalVision Vectors/Getty Images
Podczas gdy rozwijanie Delphi aplikacji korzystających z komponentu TreeView, możesz wpaść w sytuację, w której musisz wyszukać węzeł drzewa podany tylko przez tekst węzła.
W tym artykule przedstawimy Ci jedną szybką i łatwą funkcję, aby uzyskać węzeł TreeView według tekstu.
Przykład Delphi
Najpierw zbudujemy prosty formularz Delphi zawierający aWidok drzewa, Button, CheckBox i składnik Edit — pozostaw wszystkie domyślne nazwy składników.
Jak możesz sobie wyobrazić, kod będzie działał mniej więcej tak: jeśli GetNodeByText podany przez Edit1.Text zwróci węzeł, a MakeVisible (CheckBox1) ma wartość true, to wybierz węzeł.
Najważniejszą częścią jest funkcja GetNodeByText.
Ta funkcja po prostu iteruje przez wszystkie węzły wewnątrz ATree TreeView, zaczynając od pierwszego węzła (ATree.Items[0]). Iteracja wykorzystuje metodę GetNext klasy TTreeView w celu wyszukania następnego węzła w ATree (wygląda wewnątrz wszystkich węzłów wszystkich węzłów podrzędnych). W przypadku znalezienia węzła z tekstem (etykietą) podanym przez AValue (nie uwzględnia wielkości liter) funkcja zwraca węzeł. Zmienna logiczna AVisible służy do uwidocznienia węzła (jeśli jest ukryty).
|_+_|To jest kod, który uruchamia zdarzenie przycisku „Znajdź węzeł” OnClick:
|_+_|Uwaga: Jeśli węzeł jest zlokalizowany, kod wybiera węzeł, jeśli nie, wyświetlany jest komunikat.
Otóż to. Tak proste, jak tylko Delphi może być. Jeśli jednak spojrzysz dwa razy, zobaczysz, że czegoś brakuje: kod znajdzie PIERWSZY węzeł podany przez AText.