zoukankan      html  css  js  c++  java
  • TTreeView学习

    详细参考:http://www.cnblogs.com/del/archive/2008/03/10/1098798.html

    1,什么是TTreeView,TTreeNodes,TTreeNode ?

    打个比方: 譬如 TreeView 是一个军营的"营部"! 这里会有营长、连长、排长、班长、战士等等.

    我们把它们分成三种对象: 营部、营长(总当家)、营长的下属. 

    在这里的对应关系是:
    TTreeView - 营部
    TTreeNodes - 营长
    TTreeNode - 营长的下属

    上面的例子中的"营长"不是具体的哪个元素, 他代表着全营, 很多事情都是他说了算; 
    其他成员都是"营长"的兵.

    换成 Delphi 的说法: TTreeView 不过是一个包含元素的框架, 最重要的是里面的元素;
    每一个元素都是一个 TTreeNode 对象;
    所有对象的集合也是一个对象: TTreeNodes, TTreeNodes 就像那个"营长"是个幕后管理者, 它对属下的所有成员有生杀大权.

    学习 TreeView 要面对的不仅仅是 TTreeView 类, 更重要的是 TTreeNodes 和 TTreeNode 类.

    TreeView1.Items 属性就是 TreeView1 的 TTreeNodes.

    procedure TForm3.Button1Click(Sender: TObject);
    begin
    if Boolean(TreeView1.Items.Count) then  //如果其中元素总数大于0
    begin
     TreeView2.Items:=TreeView1.Items;
     TreeView1.Items.Clear;
    end;
    end;
    /// <summary>
    /// 使用Ttreeviewnodes的写法
    /// </summary>
    procedure TForm3.Button2Click(Sender: TObject);
    var
    nodes:TTreeNodes;
    begin
     nodes:=TreeView2.Items;
     if Boolean(nodes) then
     begin
      TreeView1.Items:=nodes;
      nodes.Clear;
     end;
    end;
    

     

     

     

    2,关于Items.Item[i]、Items[i];


    下面四种写法效果完全一样:


    {TreeView1.Items.Item[i] 是默认属性, 可以简写为: TreeView1.Items[i]}
    
    procedure TForm3.Button3Click(Sender: TObject);
    begin
     Self.Text:=TreeView1.Items.Item[i].Text;
    // for i := 0 to TreeView1.Items.Count-1 do
    //   begin
    //     TreeView1.SetFocus;
    //     TreeView1.Select(TreeView1.Items.Item[i]);
    //   end;
     if i< treeview1.Items.Count-1 then Inc(i) else i:=0;
       TreeView1.SetFocus;
       TreeView1.Select(TreeView1.Items.Item[i]);
    end;
    
    procedure TForm3.Button4Click(Sender: TObject);
    begin
     text:=TreeView1.Items[i].Text;
     if i<treeview1.Items.Count-1 then inc(i) else i:=0 ;
     TreeView1.SetFocus;
     TreeView1.Select(TreeView1.Items[i]);
    end;
    
    {每个元素都是 TTreeNode 类型的}
    procedure TForm3.Button5Click(Sender: TObject);
    var
    node:TTreeNode;
    begin
    node:=TreeView1.Items[i];
    text:=node.Text;
    if i< treeview1.Items.Count-1 then inc(i) else i:=0;
    TreeView1.SetFocus;
    TreeView1.Select(node);
    end;
     {尽量使用 TTreeNodes 与 TTreeNode}
    procedure TForm3.Button6Click(Sender: TObject);
    var
    nodes:TTreeNodes;
    node:TTreeNode;
    begin
    nodes:=TreeView1.Items;
    node:=nodes[i];
    text:=node.Text;
    if i< nodes.Count-1 then Inc(i) else i:=0;
    TreeView1.SetFocus;
    TreeView1.Select(node);
    end;
    
    
    

      

    
    
    


  • 相关阅读:
    WebForms 开发基础
    Web 开发基础
    Winform MDI窗体容器、权限、简单通讯
    Winform TextBox中只能输入数字的几种常用方法(C#)
    WinForm TreeView递归加载
    窗体四边阴影
    winform 进程,线程
    树状数组 / 二维树状数组
    zkw线段树
    [HNOI2014]世界树
  • 原文地址:https://www.cnblogs.com/ddxxxb/p/6900362.html
Copyright © 2011-2022 走看看