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 可以是你从数据库取来的任何值!属于下级
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 可以是你从数据库取来的任何值!属于下级
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货