function Tfrmmain.TreeFindItem(
Sender: TTreeView;
    NodeItem: TTreeNode;
    Name: String
) : TTreeNode;
begin
if NodeItem = nil then
NodeItem := Sender.items.getfirstnode
    else
     NodeItem := NodeItem.getfirstchild;    // NodeItem 是指定层的第一个节点
    // 如果该层没有查找的节点,NodeItem 返回 nil
    if (NodeItem <> nil) and (NodeItem.text <> Name) then
     repeat
         NodeItem := NodeItem.getnextsibling;
        until (NodeItem = nil) or (NodeItem.text = Name);    Result := NodeItem;
end;
procedure Tfrmmain.ShowTree();
 TreeView1.ShowRoot := True;
TreeView1.ShowButtons := True;
TreeView1.ShowLines := True;    tdNode := nil;
self.TreeView1.Items.add(tdNode, '一级A');
    self.TreeView1.Items.add(tdNode, '一级B');
    
 tdNode := TreeFindItem(TreeView1, nil, '一级A');
    if tdNode <> nil then
    begin
    tdSubNode := TreeView1.Items.AddChildFirst(
         tdNode, ls_str);
    end;
 tdNode := TreeFindItem(TreeView1, nil, '一级B');
    if tdNode <> nil then
    begin
    tdSubNode := TreeView1.Items.AddChildFirst(
         tdNode, ls_str);
    end;其中 ls_str 可以是你从数据库取来的任何值!属于下级