Einzelnen Beitrag anzeigen

taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#4

Re: [TreeView] Mit Pfad zu Node springen

  Alt 17. Mär 2008, 16:20
Hier noch eine Alternative ohne Verwendung einer StringList. Aufruf erfolgt analog, zusätzlich ist das Trennzeichen anzugeben (könnte natürlich auch fest "verdrahtet" werden):

Delphi-Quellcode:
function SelectNode(Path:String;Delimiter:Char;Tree:TTreeView):Boolean;
var p : Integer;
    SubStr : String;
    aNode,
    orgSel : TTreeNode;
begin
  orgSel:=Tree.Selected;
  aNode :=Tree.TopItem;

  repeat

    p:=pos(Delimiter,Path);
    if p=0 then SubStr:=Path
           else begin SubStr:=copy(Path,1,pred(p));
                      delete(Path,1,p);
                      end;

    while (aNode.Text<>SubStr) and
          (aNode.GetNextChild(aNode)<>nil) do aNode:=aNode.getNextChild(aNode);

    if aNode<>nil then begin Tree.Selected:=aNode;
                             aNode:=aNode.getFirstChild;
                             end;

    until (p=0) or (aNode=nil);

  Result:=(Tree.Selected.Text=SubStr);
  if not(Result) then Tree.Selected:=orgSel
end;
Ralph
  Mit Zitat antworten Zitat