unit Unit2;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.StdCtrls;

type
TForm2 = class(TForm)
TreeView1: TTreeView;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
treeview1.Items.AddFirst(nil,Edit1.text);
end;

procedure TForm2.Button2Click(Sender: TObject);
var nownode :TTreenode;
begin
nownode:=treeview1.Selected;
treeview1.Items.AddChild(nownode,edit2.Text);
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
//treeview1.Items.Add(1);
end;

end.

以下是参考的内容

Treeview用于显示按照树形结构进行组织的数据。   
    
  Treeview控件中一个树形图由节点(TreeNode)和连接线组成。TtreeNode是TTreeview的基本组成单元。   
  一个树的节点又包含文本(Text)和数据(Data)。Text为String类,Data则为无定形指针(Untyped   Pointer),   
  可以指向一个与节点相联系的数据结构。   
       
  每一个节点下子节点形成这一节点的Items属性,当前节点有一个唯一的Index(TreeNode的Index属性),   
  用于说明子节点在Items中的位置,每一个节点下的子节点是顺序编号的,第一个是0,第二个是1,依次类推。   
  用IndexOf方法获得子节点的顺序,绝对顺序(AbsoluteIndex)则是指从Treeview第一个项开始的顺序值,   
  第一个是0,如此推下去。Item属性则根据Index的值返回当前节点的第Index个子节点。Count则表明属于   
  此项的所有子节点的数量。用MoveTo方法将Item由一个位置移到另一个位置。   
    
  Expanded属性表明是否所有的子项都全部展开(包括子项的子项),为True表示全部展开。   
  IsVisible属性表明一个项是否在树中能被看到,如果树全部展开那么这个Item是肯定可以   
  被看到。   
    
  HasChildren属性表明一个项是否有子项。   GetFirstChild,   GetLastChild,   GetPrevChild,  
  and   GetNextChild分别返回当前项子项的第一个、最后一个和前一个、后一个项。   
    
  GetNextSibling   and   GetPrevSibling则返回在同一Level下的下一个和上一个项。   
  GetNextVisible   and   GetPrevVisible则返回能看得到的下一个和上一个项。如果一个节点   
  有Parent,则HasAsParent方法返回True.   Parent为当前项的父项。Focused属性确定焦点是  
  否落在此节点上,被Focus时会一个标准的方框围住。很显然,只有一个节点会被聚焦。     
    
  Selected属性表明一个节点是否被选中,同样只有一个节点会被选中。   
    
  DropTarget属性表明节点在拖动操作中是源还是目标。   
    
  .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的使用方法     
    
    
  基本信息:   
  TreeView   是一个显示树型结构的控件,每一个节点都是一个新类,   
  使用具有代表性   
  每个节点都有四个值:   
  TEXT:显示文字   Image   Index:显示图形序号   
  Selected   Index:   
  State   Index:   
    
  (1)建立目录项(本例中使用的TREEVIEW名称为:TvwTips)   
    
  增加根目录下的节点:(节点)   
 
  var  
  CatNode   :   TTreeNode;   //先建立一个TREEVIEW使用的子对象  
  begin  
  TvwTips.SetFocus;   //将焦点置到这个TREEVIEW控件上  
  {   在根标题下建立一个新的子标题   }  
  CatNode   :=   TvwTips.Items.AddChild(    
  TvwTips.Items.GetFirstNode,'New   Category'   );  
  CatNode.ImageIndex   :=   1;  
  CatNode.SelectedIndex   :=   2;  
  CatNode.EditText;   {   允许用户改变这个标题   }  
  end; 
 
    
  增加下一级目录(内容):

var  
  ParentNode,   TipNode   :   TTreeNode;   //先建立TREEVIEW使用  
  的子对象  
  VersionNum   :   Integer;  
  begin  
  TvwTips.SetFocus;   //将焦点置到这个TREEVIEW控件上  
  VersionNum   :=   TMenuItem(   Sender   ).Tag;   {   Ver   num   of   new   tip   }  
  ParentNode   :=   TvwTips.Selected;   {   取出当前的选中节点   }  
  if   ParentNode.Level   =   nlTip   then{   Parent   cannot   be   a   tip   node   }  
  ParentNode   :=   TvwTips.Selected.Parent;  
   
  TipNode   :=   TvwTips.Items.AddChildObject(   ParentNode,'New    
  Subject',Pointer(   VersionNum   )   );  
  TipNode.ImageIndex   :=   3;   {   Normal   tip   bitmap   }  
  TipNode.SelectedIndex   :=   4;   {   Highlighted   tip   bitmap   }  
  TipNode.MakeVisible;   {   Move   new   tip   node   into   view   }  
  TipNode.EditText;   {   Immediately   allow   user   to   edit   subject   }  
  EnableTreeViewFunctions(   TipNode.Level   );  
  RtfTip.Clear;  
  RtfTip.Modified   :=   False;  
  end; 
   
    
  (2)说明   
  TvwTips.Items.GetFirstNode   返回TREEVIEW的第一个节点,函数类型为   
  :TTreeNode     
  TvwTips.Items.Count   返回当前TreeView的全部节点数,整数   
  TvwTips.Selected.Level   返回当前选中节点的在目录树中的级别,   
  根目录为0   
  TvwTips.Selected.Parent   返回当前选中节点上级节点,函数类型为   
  :TTreeNode
特别提示: Expand(False)不展开其子孙结点,   Expand(True)全部展开

delphi 10.2 ---treeview 基本用法的更多相关文章

  1. Delphi 10.1 Berlin UTF8String Test

    Delphi 10.1 Berlin UTF8String Test procedure TForm1.Button1Click(Sender: TObject); var s: UTF8String ...

  2. Delphi 10.1 Berlin 官方未列之修正

    Delphi 10.1 Berlin 官方修正列表: Bug fix list for RAD Studio 10.1 Berlin Delphi 10.1 Berlin 官方未列之修正: 修正 iO ...

  3. Delphi 10 Seattle Update 1 修复 iOS HTTP 协定需求

    在 iOS 9 Apple 加入了 HTTP 协议,还好有 TMS 提供快速修复工具,得以能顺利上架到 App Store. 现在 Delphi 10 Seattle Update 1 提供了这个设定 ...

  4. delphi 10 seattle 安卓服务开发(三)

    delphi 10 里面的安卓服务有四种,上面的一篇文章里面的图有介绍. 今天做一个remote service 的例子.(里面一部分代码是抄别人的,如果不太清楚,自行恶补) remote servi ...

  5. delphi 10 seattle 安卓服务开发(二)

    关于delphi 10 移动服务开发的几张图

  6. delphi 10 seattle 中 解决IOS 9 限制使用HTTP 服务问题

    IOS 9 于17号早上正式开始推送,早上起来立马安装,这次升级包只有1G, 安装空间也大大降低(想起IOS 8 升级时,几乎把手机里面的东西删光了,满眼都是泪). 虽然安装后,网上几乎是铺天盖地的吐 ...

  7. delphi 10.1 berlin最新的开发框架:咏南中间件+咏南开发框架,购买后提供全部的源码

    咏南中间件+咏南开发框架支持最新的delphi 10.1(berlin),老用户提供免费升级. 购买提供:中间件源码 附带福利(赠送): CS开发框架源码BS开发框架源码移动APP源码中间件集群源码二 ...

  8. Delphi 10.1 Berlin Starter Edition

    Delphi 10.1 Berlin Starter Edition Embarcadero® Delphi 10.1 Berlin Starter is a great way to get sta ...

  9. Where is the ActiveX Project Type for Delphi 10.1 Berlin

    n 10.1 Berlin the ActiveX project types are missing from the New Items Window under Delphi. They are ...

随机推荐

  1. Golang学习系列:(一)介绍和安装

    Golang学习系列:(一)介绍和安装 Java程序员带你来到Go的世界,让我们开始探索吧! Go是一种新的语言,一种并发的,带有垃圾回收的.快速编译的语言,它具有一下特点: 他可以在一台计算机上用几 ...

  2. C语言Web service编程

    一.简介 Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用 ...

  3. firefox快速刷新error及解决办法

    问题: 测试发过来bug,说——频繁F5刷新页面,会闪现未加载完样式的页面:    开发用的Chrome,没发现这个问题,测试用的firefox,于是从浏览器的刷新加载机制方面搜索解决办法,没搜到,运 ...

  4. 点击panel滚动条滚动到底部

    $('#accordion').on('shown.bs.collapse', function () { var container = $(".admin-user .mx-scroll ...

  5. div模拟键盘输入

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  6. PHP(三)运算符、流程控制和函数初步

  7. swift 学习之 UIAlertViewController

    // //  PushViewController.swift //  tab // //  Created by su on 15/12/7. //  Copyright © 2015年 tian. ...

  8. Ubuntu下的apache2的配置过程

    参考apache2的中文文档:http://httpd.apache.org/docs/2.4/ 安装apache2: apt-get install apache2 安装apache2doc文档:a ...

  9. ViewPage实现无限轮播画廊效果

    1. 效果图 2. 布局文件 主要使用的 android:clipChildren的意思:是否限制子View在其范围内.再父布局和viewpager中设置该属性  ,要显示三个界面 ,还要设置marg ...

  10. Android Camera的使用(一) 读书笔记

    原文地址 https://blog.csdn.net/junzia/article/details/52301199 拍照步骤1.添加权限2.开启相机时check一下是否有摄像头3.对预览大小.照片大 ...