Einzelnen Beitrag anzeigen

Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: [TreeView] Mit Pfad zu Node springen

  Alt 17. Mär 2008, 10:54
Hi,

kann ja sein, dass es noch einfacher geht, aber so funktioniert es bei mir.
Delphi-Quellcode:
function function SelectNode(Pfad: AnsiString; Tv: TTreeView): boolean;
var
  Sl: TStrings;
  i: integer;
  Node: TTreeNode;
begin
  Result:= false;
  Pfad:= StringReplace(Pfad,'\', #13#10, [rfReplaceAll]);
  Sl:= TStringList.Create;
  try
    Sl.Text:= Pfad;
    Node:= Tv.TopItem;
    for i:= 0 to sl.Count- 1 do
    begin
      while Assigned(Node) do
      begin
        if node.Text= sl.Strings[i] then
        begin
          if i= sl.Count- 1 then
          begin
            Result:= true;
            Node.Selected:= Result;
          end;
          break;
        end;
        Node:= Node.GetNextSibling;
      end;
      if Assigned(Node) then
        Node:= Node.GetFirstChild;
    end;
  finally
    Sl.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if SelectNode('1\2', TreeView1) then
    beep;
end;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat