![]() |
VirtualStringTree Eintrag suchen.
Hi Delphianer
Ich habe ne VST und verwende ne Inputbox um Einträge in der VST zusuchen. gelöst habe isch das so...
Delphi-Quellcode:
nur findet und fokusiert er den Eintrag nur wenn er im Inputbox genau so geschrieben wird wie er auch im VST drinn steht.
procedure TWindowManager.VSTKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var XNode: PVirtualNode; Data: PTreeData; SearchKey : String; begin if (ssCtrl in Shift) and ((Key = Ord('F')) or (Key = Ord('f'))) then begin SearchKey := inputbox('Windowmanager Search','Search Caption',''); XNode := VST.GetFirst; while XNode <> nil do begin Data := VST.GetNodeData(XNode); if lowercase(Data^.Column1) = lowercase(SearchKey) then begin VST.ClearSelection; VST.Selected[XNode] := True; VST.SetFocus; break; end else XNode := VST.GetNextSibling(XNode); end; end; end; wie kann ikch das machen das er den Eintrag auch findet wenn man z.b nur die ersten 3-4 Buchstaben eingibt. Grüsse Zodi |
AW: VirtualStringTree Eintrag suchen.
![]() ![]() ![]() ![]() ![]() ![]() string.StartsText ( ![]() string.StartsWith string.IndexOf ![]() ![]() ... Und willst du wirklich nur die Siblings durchsuchen? Zitat:
|
AW: VirtualStringTree Eintrag suchen.
Ich würde an der Stelle auch eher mit
Delphi-Quellcode:
arbeiten wenn du alle Nodes beachten willst. Es sei denn, du hast nur eine Ebene von Nodes oder willst gezielt nur eine Ebene durchsuchen.
GetNext()
Wenn du die Nodes eventuell sogar unsichtbar schalten willst, dann solltest du auch darauf achten, dass du die Parent Nodes visible lässt wenn eine ChildNode den gesuchten Text enthält. Und ebenfalls solltest du prüfen, ob eine Node nicht ggf. unsichtbar ist die den gesuchten Text beinhaltet. Dann müsstest du sie evtl. sichtbar schalten oder beim Setzen des Focus und Selected States ausklammern. Zum Prüfen für die Sichtbarkeit gibt es die
Delphi-Quellcode:
property.
Tree.IsVisible[Node]
|
AW: VirtualStringTree Eintrag suchen.
Moin...:P
Zitat:
Man sucht nicht im visuellen Control, sondern in der Datenmenge die das visuelle Control befüllt. :warn: Bei einem Match kann man das visuelle Control auf diesen Eintrag setzen oder anders auswerten. :wink: [\meine Meinung] |
AW: VirtualStringTree Eintrag suchen.
Zitat:
Dazu kommt, dass er sich eine Liste bauen müsste, die die gefilterten Ergebnisse beinhaltet. In diesem Fall ging es aber wohl eher darum, eine Node mit dem entsprechenden Text in einem Haufen anderer Nodes anzuzeigen und die Anzeige nicht auf diese eine (oder ggf. mehrere Nodes) zu beschränken. Zumindest lese ich das so aus seiner Frage heraus. Und einen Selected Zustand über eine Liste zu erreichen wird wohl doch etwas schwieriger sein. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz