treeview.items.addchild,
具体用法看帮助,找关于 TTreeView和TTreeNode的内容

解决方案 »

  1.   

    delphi安装目录下的Demo里有Treeview的例子,而且在帮助里说的也比较详细,有Example。:)还是自己花点时间看看吧
      

  2.   

    //这是一端从数据库中读出数据显示成树的程序
      l_Node := Tv_lb.Items.Add(Nil,'根);
      l_Node.ImageIndex := 0;
      l_Node.SelectedIndex := 4;  l_vZfx := TStrings.Create;
      with Q_Aid do                     //1级
            begin
            with sql do
                    begin
                    Clear;
                    add('Select Distinct lb From T_xcskb');
                    end;
            Prepared := True;
            Open;
            While not Eof do
                    begin
                    l_sLb := FieldByName('lb').AsString;
                    l_Node1 := Tv_lb.Items.AddChild(l_Node,l_sLb);
                    l_Node1.ImageIndex := 1;
                    l_Node1.SelectedIndex := 4;
                    with Q_Aid1 do   //2级
                            begin
                            with sql do
                                    begin
                                    clear;
                                    add('Select Distinct xcskbmc From T_xcskb');
                                    add('Where Lb=''' + l_sLb + '''');
                                    end;
                            Prepared := True;
                            Open;
                            While not Eof do
                                    begin
                                    l_sMc := FieldByName('xcskbmc').AsString;
                                    l_Node2 := Tv_lb.Items.AddChild(l_Node1,l_sMc);
                                    l_Node2.ImageIndex := 2;
                                    l_Node2.SelectedIndex := 4;
                                    with Q_Aid2 do      //3级
                                            begin
                                            with sql do
                                                    begin
                                                    clear;
                                                    add('Select Distinct zfx From T_xcskb');
                                                    add('where Lb='''+l_sLb + ''' and xcskbmc='''+l_sMc+'''');
                                                    end;
                                            Prepared := True;
                                            Open;
                                            While not Eof do
                                                    begin
                                                    l_sZfx := FieldBYName('Zfx').AsString;
                                                    l_Node3 := Tv_Lb.Items.AddChild(l_Node2,l_sZfx);
                                                    l_Node3.ImageIndex := 3;
                                                    l_Node3.SelectedIndex := 4;
                                                    with Q_Aid3 do
                                                            begin
                                                            with sql do
                                                                    begin
                                                                    clear;
                                                                    add('select * from T_Xcskb');
                                                                    add('where Lb='''+l_sLb + ''' and xcskbmc='''+l_sMc+''' and Zfx=''' + l_sZfx + '''');
                                                                    end;
                                                                    Prepared := True;
                                                                    Open;
                                                                    while not Eof do
                                                                            begin
                                                                            l_sBz := FieldByName('bz').AsString;
                                                                            l_Node4 := Tv_lb.Items.AddChild(l_Node3,l_sBz);
                                                                            l_pData := New(PNodeData);
                                                                            l_pData^.m_iID := FieldByName('bzh').AsInteger;
                                                                            l_pData^.m_sLb := l_sLb;
                                                                            l_pData^.m_sZfx := FieldByName('Zfx').AsString;
                                                                            l_pData^.m_sBz := l_sBz;
                                                                            l_pData^.m_iZdsh := FieldByName('Zdsh').AsInteger;
                                                                            l_pData^.m_iZqsh := FieldByName('Zqsh').AsInteger;
                                                                            l_Node4.Data := l_pData;
                                                                            l_Node4.ImageIndex := 4;
                                                                            l_Node4.SelectedIndex := 4;
                                                                            next;
                                                                            end;
                                                            Close;
                                                            end;
                                                    next;
                                                    end;
                                            Close;
                                            end;
                                    next;
                                    end;
                            Close;
                            end;
                    next;
                    end;
                    Close;
            end;