注册 登录
编程论坛 Delphi论坛

关于treeview ,达人进来看下,小弟新人

benny_dong 发布于 2007-08-09 11:55, 827 次点击

新学delphi,按照书上学习,在treeview中创建动态节点
其中,“联系目录”为根节点,在根据表中 “类型”字段添加子节点
但是在treeview组件中无法显示出来,请问是什么原因?
数据库应该连接没有问题

private
{ Private declarations }
public
Node1,Node2:TTreeNode;
{ Public declarations }
end;

var main:Tmain;

implementation
{$R *.dfm}

procedure TMain.TreeviewReFresh;
begin
Node1:=Treeview1.Items.Add(nil,'联系目录');
ADOQuery1.Close;
ADOQuery1.SQL.Text:='Select Distinct 类型 From msn'; //msn表中的类型字段//
ADOQuery1.Open;
if ADOQuery1.RecordCount>0 then
begin
while not ADOQuery1.Eof do
begin
Node2:=TreeView1.Items.AddChild(Node1,ADOQuery1.Fields[0].asstring);
TreeView1.Items.AddChild(Node2,'');
ADOQuery1.Next;
end;
end;
end;

3 回复
#2
anthony6342007-08-09 13:44

没创建到节点么?那应该是这两句有问题
if ADOQuery1.RecordCount>0 then
begin
while not ADOQuery1.Eof do
begin

#3
benny_dong2007-08-10 10:06

什么问题呢?

#4
anthony6342007-08-10 10:32

Node2:=TreeView1.Items.AddChild(Node1,ADOQuery1.Fields[0].asstring);
TreeView1.Items.AddChild(Node2,'');

这里两句即使后面的名字为空也会创建一个无名节点,所以只可能是没执行到这里,至于什么问题我不清楚,或许是你的mdb文件本来就没记录。用F8跟踪RecordCount是不是等于0就可以了

1