一个和树状控件相关的问题 点击左面的节点时,更改DbGrid连接的Dateset对应的ADOQuery中的sql语句为有关这个节点的数据,再刷新一下DbGrid就可以了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你在装载树时先定义一个类节点数组,节点数组存放节点信息节点数组的结构就是你想显示数据的内容结构,然后把数据的内容都放到这个数组里.你点击节点时,相应节点数组的内容就放到DbGrid即可 建立一个TStringList数组 如 SQLList array[0..n] of TStringList;可以将节点的AbosultIndex属性 与 相关的这个数组的索引联系起来例:procedure Treeview1.NodeChange(,,,,,,,)begin Query1.Close; Query1.SQL.Clear; Query1.SQL.Add(SQLList[Node.AbsoluteIndex]); Query.Open;end; 能再说清除点吗?呵呵刀客的方法我听懂了可用ado Table 应怎么做? to:hqycxy(仇笑雨) 大概的代码:你看一下类节点type TClassNODE = record//节点的结构 MeaningA : string;//你需要的数据1 MeaningB : string;//你需要的数据2 end; ClassNodeInfo : array of TClassNode;//节点数组 p : ^TClassNode;//TClassNode指针CurrentNode : TTreeNode;//树节点CurrentNode := treeview1.items.AddChild(tnNODE,'名称1');//加节点 ClassNodeInfo[1].MeaningA=1节点.数据1 ClassNodeInfo[1].Meaningb=1节点.数据2 p := @ClassNodeInfo[1]; CurrentNode.Data := p ;//这样节点数组1存放节点1信息2.点击节点时,相应节点数组的内容就放到DbGrid p : ^TClassNode; p:=TreeView1.Selected.Data; p^.MeaningA,p^.MeaningB// 就是你想要的数据这是原理可用ado Table 应怎么做?用ado连数据库,把上面的代码做成个递归函数,数据1,数据2从数据库中得到在装载树时每加一个节点,就把相应的信息节点加一次! 我们的想法不谋而合,我现在正在以treeview为基础做一个新控件,使它具有数据操作属性方法,现在已小有进展,多多交流呀! 用Query 控件,在SQL语句里加一句var TreeItem:String; TreeItem:=TreeView.TreeNode.Items[ YourClicked].text;记不清了,你自己来吧 Where FieldName=TreeItem; 最大化、最小化和关闭按钮 请教 DBGRID 显示EXCEL 的问题 如何将一个.ini 文件添加到.exe 文件的末尾? 急求:有个关于LIKE的数据查询,请大家进来探讨! [老生长谈]再问TClientSocet正确传输的问题! 我想学gis 有谁能够提供:推荐电子图的控件??哪里有?可以下载 (来者有分) 抓图之抓控件! datetimepicker为什么会这样??(急!!!!!!) 请教几个问题。 TADOQuery使用参数的问题 我的一个数据文件里面换行符有问题,是"0D 0A",所以我只能读取第一行的数据,有什么办法能够解决? QReport使用问题
节点数组的结构就是你想显示数据的内容结构,然后把数据的内容都放到这个数组里.
你点击节点时,相应节点数组的内容就放到DbGrid即可
SQLList array[0..n] of TStringList;
可以将节点的AbosultIndex属性 与 相关的这个数组的索引联系起来
例:
procedure Treeview1.NodeChange(,,,,,,,)
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(SQLList[Node.AbsoluteIndex]);
Query.Open;
end;
呵呵
刀客的方法我听懂了可用ado Table 应怎么做?
大概的代码:你看一下
类节点
type TClassNODE = record//节点的结构
MeaningA : string;//你需要的数据1
MeaningB : string;//你需要的数据2
end;
ClassNodeInfo : array of TClassNode;//节点数组
p : ^TClassNode;//TClassNode指针
CurrentNode : TTreeNode;//树节点
CurrentNode := treeview1.items.AddChild(tnNODE,'名称1');//加节点
ClassNodeInfo[1].MeaningA=1节点.数据1
ClassNodeInfo[1].Meaningb=1节点.数据2
p := @ClassNodeInfo[1];
CurrentNode.Data := p ;//这样节点数组1存放节点1信息
2.点击节点时,相应节点数组的内容就放到DbGrid
p : ^TClassNode;
p:=TreeView1.Selected.Data;
p^.MeaningA,p^.MeaningB// 就是你想要的数据
这是原理
可用ado Table 应怎么做?
用ado连数据库,把上面的代码做成个递归函数,数据1,数据2从数据库中得到
在装载树时每加一个节点,就把相应的信息节点加一次!
var
TreeItem:String;
TreeItem:=TreeView.TreeNode.Items[ YourClicked].text;
记不清了,你自己来吧
Where FieldName=TreeItem;