想在query滚动的同时,使treeview上同步显示相应记录,该如何实现?谢谢
看到有个这样的软件下载,但不是完整的,没办法用。

解决方案 »

  1.   

    引用猛料上的
    var curID,nodeTxt:string;
        level,num:integer;
    begin
        //初始化变量
        Screen.Cursor:=crHourGlass;                //开始使鼠标处于忙的状态
        tree.Enabled:=True;                           //tree????是否是treeview
        tree.Items.Clear;
        level:=1 ;
        num:=1;
        tree.items.clear;
        //设置根节点
        mynode[level]:=Tree.items.add(Tree.Topitem,cTreeRootTxt);//mynode:array[0..6] of TTreenode;在第一层上设置根节点    mynode[level].ImageIndex:=0;
        mynode[level].SelectedIndex:=1;
        //遍历数据表,利用编码字段记录排序规律,依次添加树节点??数据表中的字段有那些??tsglb,tsglbn....
        with TreeDb do                     //treedb:tdbdataset
        begin
           try
           if not Active then open;
           first;
           while not Eof do             
           begin
             curID:=trim(FieldByName('tsglb').AsString);
             nodeTxt:=curID+'-'+trim(FieldByName('tsglbn').AsString);
             level:=GetNodeLevel(cTreeCodeFormat,curID);
             //这里返回代码的层次数
             if level>0 then
             begin
      //增加下一节点时,用添加子节点的方法可轻松实现节点间的层次关系。
             //注意:这里的父节点是用当前节点的上一级节点mynode[level-1]
                mynode[level]:=Tree.Items.AddChild(Mynode[level-1],NodeTxt);
                mynode[level].ImageIndex:=2;
                mynode[level].SelectedIndex:=3;
             end;
             next;//下一条记录
           end;
           finally;
             close;
           End;
           mynode[1].expand(False);
           Screen.Cursor:=crHourGlass;
         end;
    end;
      

  2.   

    datreeview,看看人家的代码吧,其实有时觉得有些问题真的是不应该问了,如果没有一个良好的思考习惯,那么,以后的问题会越来越多的。这样吧,国庆后还想不出来,就联系我。
    [email protected]
      

  3.   

    sorry ,应该是datatreeview,有DEMO的