求treeview(三层)使用例子在线...

IwantFlay 2003-04-03 02:51:37
如题.
越详细越好.
...全文
23 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
setfocus 2003-04-04
  • 打赏
  • 举报
回复
这是我写的一个过程

{绘制树:
QryObj:查询控件名称;MyTreeView:树型控件名;SQL:查询语句;
Field:主字段;Index:图片索引
}
procedure DrawTree(ChildQryObj,GrandsonQryObj:TADOQuery;MyTreeView:TTreeView;LayerNum,MainIndex,ChildIndex,GrandsonIndex:Integer;ChildSQL,GrandsonSQL,ChildField,ChildGrandsonField,GrandsonField:string);
var
MainNode,ChildNode,GrandsonNode,lnNode:TTreeNode;
begin
with MyTreeView.Items do
begin
Clear;
MainNode:=add(nil,'信息名称列表');
MainNode.ImageIndex:=MainIndex;
MainNode.SelectedIndex:=MainIndex;
DateSelect(ChildQryObj,ChildSQL);
while not ChildQryObj.Eof do
begin
ChildNode:= AddChild(MainNode,ChildQryObj.fieldbyname(''+ChildField+'').AsString);
ChildNode.ImageIndex:=ChildIndex;
ChildNode.SelectedIndex :=ChildIndex;
if LayerNum>2 then
begin
DateSelect(GrandsonQryObj,GrandsonSQL+''''+ChildNode.Text+'''');
while not GrandsonQryObj.Eof do
begin
GrandsonNode:=AddChild(ChildNode,GrandsonQryObj.fieldbyname(''+GrandsonField+'').AsString );
GrandsonNode.ImageIndex :=GrandsonIndex;
GrandsonNode.SelectedIndex :=GrandsonIndex;
GrandsonQryObj.Next;
end;
lnNode := GetFirstNode;
while not (lnNode = nil) do
begin
lnNode.Expand(true);
lnNode := lnNode.GetNextSibling;
end;
end;
ChildQryObj.Next;
end;
end;
end;
cdhuanglei 2003-04-04
  • 打赏
  • 举报
回复
若是用数据表ToTreeview,则建表结构如下:
ID PID Name

用Treenode的data属性。
glassesboy 2003-04-03
  • 打赏
  • 举报
回复
还是明白你要干什么?是要根据库还原TreeView吗

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧