==============================
有1个TreeView,和这样一个表表 名称 所属
节点1 根结点1
节点2 节点1
节点3 节点2
节点4 节点1
节点5 根节点2根结点1和2是TreeView固有的2个节点,我想让程序运行时从表中读出数据,先读“所属”为“根结点”的所有数据,添加到TreeView的根节点下,再读“所属”为“刚才添加的节点”的所有数据,生成TreeView的Item,添加到“刚才添加的节点”下。
我觉得好像就是用递归,不过我是菜菜,不会写,求源码!
只知道TreeView某一节点的名称,想给他添加SubItem,怎么做呢?我用的是ADO+Access,请高手们帮忙推荐点例程呀,贴子什么的,多谢多谢!见源码就结贴,快抢啊! 新年快乐!
===================================
有1个TreeView,和这样一个表表 名称 所属
节点1 根结点1
节点2 节点1
节点3 节点2
节点4 节点1
节点5 根节点2根结点1和2是TreeView固有的2个节点,我想让程序运行时从表中读出数据,先读“所属”为“根结点”的所有数据,添加到TreeView的根节点下,再读“所属”为“刚才添加的节点”的所有数据,生成TreeView的Item,添加到“刚才添加的节点”下。
我觉得好像就是用递归,不过我是菜菜,不会写,求源码!
只知道TreeView某一节点的名称,想给他添加SubItem,怎么做呢?我用的是ADO+Access,请高手们帮忙推荐点例程呀,贴子什么的,多谢多谢!见源码就结贴,快抢啊! 新年快乐!
===================================
解决方案 »
- 关于AnimateWindow setwindowrgn的问题,求教!
- 如何更改一个PopMenu控件的颜色?
- 基础问题,很容易解决~~
- 高人们可否指点迷津!!!!多给分!!!
- 存储过程,不解!为何用adostoredproc就是不能实现存储过程
- char型数组中的数据如何转化为hex数据并用udp发送出去?
- 200分求交叉显示和编辑界面控件....或源码....
- Install shield 教程
- DELPHI 关于quick report打印只出每条记录的第一个字.急!
- TADODataSet的commandText是动态赋给的,如何改变相应的TDBGrid的个字段的Title?
- 声道转换的问题
- delphi 7.0中如何将wav转换成mp3文件,除了mmtools还有什么好的控件,我的mmtools不好用
var
node : TTreeNode;
i : integer;
s : string;
begin
inherited;
with query1 do
begin
close;
sql.Clear;
sql.Add('SELECT GRPID,GRPNAME FROM SYSGROUP');
open;
end;
s := query1.fieldbyname('grpname').AsString;
treeview1.Items.Clear;
for i := 0 to query1.RecordCount - 1 do
begin
Node := treeview1.Items.Add(nil,s);
with query2 do
begin
close;
sql.Clear;
sql.Add('SELECT A.GRPNAME,B.NAME FROM SYSGROUP A,SYSUSER B WHERE A.GRPID = B.GRPID');
open;
end;
for i := 0 to query2.RecordCount -1 do
begin
treeview1.Items.AddChild(node,query2.fieldbyname('name').AsString);
next;
end;
next;
end;end;
var
node : TTreeNode;
i : integer;
s : string;
begin
with query1 do
begin
close;
sql.Clear;
sql.Add('SELECT GRPID,GRPNAME FROM SYSGROUP');
open; //查询第一层节点
end;
s := query1.fieldbyname('grpname').AsString; //第一层节点显示的文本
treeview1.Items.Clear; //清空全部节点
for i := 0 to query1.RecordCount - 1 do
begin
Node := treeview1.Items.Add(nil,s); //添加第一层节点
with query2 do
begin
close;
sql.Clear;
sql.Add('SELECT A.GRPNAME,B.NAME FROM SYSGROUP A,SYSUSER B WHERE A.GRPID = B.GRPID');
open; //根据地一层节点查询此节点下的第二层节点
end;
for i := 0 to query2.RecordCount -1 do
begin
treeview1.Items.AddChild(node,query2.fieldbyname('name').AsString);
//添加第二层节点
next;
end;
next;
end;end;
请问这一句怎么解释
你的代码好像缺了两句
QUERY1.CLOSE;
QUERY2.CLOSE;这两句可在函数结束时填也可在窗体结束时填,不然会有麻烦的。
TO wlmy2004(wl)
这句话的意思是在query控件中添加sql语句,这个语句是说 从SYSGROUP表和SYSUSER 中查询两个
字段分别是sysgroup的grpname字段和sysuser的name字段,条件是sysgroup的grpid等于sysuser的grpid字段.