procedure TForm1.Button1Click(Sender: TObject);
var
  I, J: Integer;
begin
  J := 0;
  if Assigned(TreeView1.Selected) then
    for I := 0 to TreeView1.Items.Count - 1 do
      if TreeView1.Items[I] = TreeView1.Selected then begin
        J := I + 1;
        Break;
      end;  for I := J to TreeView1.Items.Count - 1 do
    if TreeView1.Items[I].Text = Edit1.Text then begin
      TreeView1.Selected := TreeView1.Items[I];
      TreeView1.SetFocus;
      Exit;
    end;
  ShowMessage('No');
end;procedure TForm1.Edit1Change(Sender: TObject);
begin
  TreeView1.Selected := nil;
end;

解决方案 »

  1.   

    首先Treeview1要处于激活状态
    node.Selected:=true;
      

  2.   

    你可以看TTreeNode.data 和 TTreeNode.selected的帮助
    由于每个Node的TEXT是可变的(当然你可以不允许更改)且可重复,所以不能做唯一标识,你不妨在生成NODE同时添加一个唯一标识(用function AddObject(Node: TTreeNode; const S: string; Ptr: Pointer): TTreeNode;然后每次用TTREENODE。DATA来验证;
    至于后者用TTreeNode.Selected := true即可
      

  3.   

    你可以看TTreeNode.data 和 TTreeNode.selected的帮助
    由于每个Node的TEXT是可变的(当然你可以不允许更改)且可重复,所以不能做唯一标识,你不妨在生成NODE同时添加一个唯一标识(用function AddObject(Node: TTreeNode; const S: string; Ptr: Pointer): TTreeNode;然后每次用TTREENODE。DATA来验证;
    至于后者用TTreeNode.Selected := true即可
      

  4.   

    你可以看TTreeNode.data 和 TTreeNode.selected的帮助
    由于每个Node的TEXT是可变的(当然你可以不允许更改)且可重复,所以不能做唯一标识,你不妨在生成NODE同时添加一个唯一标识(用function AddObject(Node: TTreeNode; const S: string; Ptr: Pointer): TTreeNode;然后每次用TTREENODE。DATA来验证;
    至于后者用TTreeNode.Selected := true即可