zoukankan      html  css  js  c++  java
  • Delphi中的TreeView

    以前总是循环展开,现在有这个属性,就简单多了
    RzTreeView_DWDept.FullExpand;  这样就可以全部 展开了。
    还有一个问题,设置节点选中
    RzTreeView_DWDept.SetFocus;
    if RzTreeView_DWDept.Selected = nil then
          RzTreeView_DWDept.Selected := RzTreeView_DWDept.Items.Item[0];
    这个的重点是  RzTreeView_DWDept.SetFocus; 如果当前焦点没有在树上,你怎么设置都不起作用。


    **************************************************************
    .1.添加、删除、修改节点:
    静态的方法可以在设计时通过Items的编辑器设置各节点的内容。
    在添加和删除前必须保证有节点被选中(Treeview.Selected = nil)
    用AddFirst, AddFirstChild, AddChild等先添加根节点,如Treeview.Items.AddFirst( nil, 'Root');
    然后以此为基础,添加此项的子节点。


    删除节点
    Treeview.Selected.Delete


    编辑节点内容
    Treeview.Selected.EditText


    注意:由于根节点没有父节点 (TTreeNode.Parent= nil)
    此外,在大批量添加数据到Treeview中时最好使用
      TreeView.Items.BeginUpdate;
      添加节点
      TreeView.Items.EndUpdate
    这样能加快显示速度。


    2.在节点上添加图象
    Treeview中几个与图象相关的属性:
      SelectedIndex:当节点被选中时在TimageList 中选什么样的图象
      OverlayIndex:选那副图象作为掩图(一幅图象透明地显示在另一幅图象的前面),比如一个节点不可用时加一副X图象在其前面。
      ImageIndex:在常态时选用的图的序号
      StateIndex: 在StateImages这个ImageList中对应的序号,-1时不显示图象
       比较典型的,象在文件管理器中的所显示的一样,Treeview控件在节点之前也可以显示图象。在Form中放置一ImageList控件,加入几个图 片,分别被Index为0,1,…在Treeview的Image属性项填入你所加入的ImageList的控件名称。TreeNode的 ImageIndex表示节点未被选中时(Selected=nil)的图片序号,SelectedIndex表示节点被选中时图片序号。


    3.关于Level
    Level的概念可以用下图表示:
    Level0   Level1 Level2


    4.排序
    SortType决定什么时候进行排序;
    TreeView.AlphaSort对节点进行排序,如果不能满足要求,你可以定义自己的CustomSort方法。


    5.Drag&Drop操作,与标准的拖放操作使用方法一样


    下面是我写的一个TREEVIEW小程序的代码   
      var       rootnode,subnode,personnode,matenode:ttreenode;   
                  i,j,k:integer;   
          begin   
          rootnode:=tv1.items.add(nil,'公司');   
          qrymaster.Close;   
          qrymaster.sql.add('select   *   from   master');   
          qrymaster.Open;   
          qrymaster.First;   
          for   i:=0   to   qrymaster.RecordCount-1   do   
          begin   
                      subnode:=tv1.Items.Addchild(rootnode,qrymaster.FieldByName('company').AsString);   
                  //原形:rootnode=tv1.items.add(nil,string);   
                  //       rootnode.ImageIndex   :=0;   
                  //       rootnode.stateIndex   =0;   
                        qrysub.Close;   
                        qrysub.SQL.clear;   
                        qrysub.SQL.Add('select   *   from   submaster   where   companyid=:dd');   
                        qrysub.ParamByName('dd').asinteger:=qrymaster.FieldByName('companyid').asinteger;   
                        qrysub.Open;   
                        qrysub.First;   
                          for   j:=0   to   qrysub.RecordCount-1   do   
                          begin   
                                personnode:=tv1.Items.AddChild(subnode,qrysub.FieldByName('personname').AsString);   
                                //   subnode.ImageIndex   :=-1;   
                                //   subnode.StateIndex   :=-1;   
                                qrymate.close;   
                                qrymate.sql.clear;   
                                qrymate.sql.add('select   *   from   comunication   where   personid=:personid');   
                                qrymate.parambyname('personid').asinteger:=qrysub.fieldbyname('personid').asinteger;   
                                qrymate.open;   
        
                                for   k:=0   to   qrymate.recordcount-1   do   
                                  begin   
                                  matenode:=tv1.items.addchild(personnode,qrymate.fieldbyname('name').asstring);   
                                  qrymate.next;   
                                  end;   
                                  qrysub.Next;   
                          end;   
        
                  qrymaster.Next;   
              end;   
            end;

  • 相关阅读:
    hbuilder中如何使用egit上传项目
    网络攻防第二周学习笔记
    sqlserver两表关联的更新
    ISAPI_rewrite中文手册
    Unity中C#单例模式使用总结
    Window Live Writer Test
    Spring Cloud 服务注册与发现(Eureka 找到了!找到了! 嘻嘻)
    Spring Cloud 服务消费与负载均衡(feign)
    Spring Cloud 服务消费与负载均衡(Rest + Ribbon )
    列表的响应式排版
  • 原文地址:https://www.cnblogs.com/cinemaparadiso/p/8256882.html
Copyright © 2011-2022 走看看