文档章节

学习 TTreeView [5] - TTreeNode.Level 属性

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 657
阅读 1
收藏 0
本例效果图:


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Grids, ExtCtrls;

type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    Memo1: TMemo;
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{初始化 TreeView1}
procedure TForm1.FormCreate(Sender: TObject);
var
  Nodes: TTreeNodes;
  node: TTreeNode;
begin
  TreeView1.Align := alLeft;
  Nodes := TreeView1.Items;
  node := Nodes.Add(nil, '一连长');
  node := Nodes.AddChild(node, '一排长');
  node := Nodes.AddChild(node, '一班长');
  node := Nodes.AddChild(node, '战士1');
  Nodes.Add(node, '战士2');
  Nodes.Add(node, '战士3');
  Nodes.Add(node, '战士4');
  node := node.Parent;
  Nodes.Add(node, '二班长');
  Nodes.Add(node, '三班长');
  node := node.Parent;
  Nodes.Add(node, '二排长');
  Nodes.Add(node, '三排长');
  node := node.Parent;
  Nodes.Add(node, '二连长');
  Nodes.Add(node, '三连长');
end;

{获取元素名列表}
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  Memo1.Clear;
  for i := 0 to TreeView1.Items.Count - 1 do
    Memo1.Lines.Add(TreeView1.Items[i].Text);
end;

{使用 Level 属性和 Tab 字符格式化列表}
procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
  s: string;
begin
  Memo1.Clear;
  for i := 0 to TreeView1.Items.Count - 1 do
  begin
    s := StringOfChar(#9, TreeView1.Items[i].Level);
    s := s + TreeView1.Items[i].Text;
    Memo1.Lines.Add(s);
  end;
end;

{上面那个不好看, 这个是用了 4 个空格做 Level 标识}
procedure TForm1.Button3Click(Sender: TObject);
var
  i: Integer;
  s: string;
begin
  Memo1.Clear;
  for i := 0 to TreeView1.Items.Count - 1 do
  begin
    s := StringOfChar(#32, TreeView1.Items[i].Level * 4);
    s := s + TreeView1.Items[i].Text;
    Memo1.Lines.Add(s);
  end;
end;

end.

 
 
 
 
 

 

 

  
之前忘了 StringOfChar 函数的存在, 曾经把程序写作:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Grids, ExtCtrls;

type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    Memo1: TMemo;
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{初始化 TreeView1}
procedure TForm1.FormCreate(Sender: TObject);
var
  Nodes: TTreeNodes;
  node: TTreeNode;
begin
  TreeView1.Align := alLeft;
  Nodes := TreeView1.Items;
  node := Nodes.Add(nil, '一连长');
  node := Nodes.AddChild(node, '一排长');
  node := Nodes.AddChild(node, '一班长');
  node := Nodes.AddChild(node, '战士1');
  Nodes.Add(node, '战士2');
  Nodes.Add(node, '战士3');
  Nodes.Add(node, '战士4');
  node := node.Parent;
  Nodes.Add(node, '二班长');
  Nodes.Add(node, '三班长');
  node := node.Parent;
  Nodes.Add(node, '二排长');
  Nodes.Add(node, '三排长');
  node := node.Parent;
  Nodes.Add(node, '二连长');
  Nodes.Add(node, '三连长');
end;

{获取元素名列表}
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  Memo1.Clear;
  for i := 0 to TreeView1.Items.Count - 1 do
    Memo1.Lines.Add(TreeView1.Items[i].Text);
end;

{使用 Level 属性和 Tab 字符格式化列表}
procedure TForm1.Button2Click(Sender: TObject);
var
  arr: array[0..MAXBYTE] of Char;
  i: Integer;
  s: string;
begin
  Memo1.Clear;
  FillChar(arr, Length(arr), #9);
  for i := 0 to TreeView1.Items.Count - 1 do
  begin
    s := Copy(arr, 0, TreeView1.Items[i].Level);
    s := s + TreeView1.Items[i].Text;
    Memo1.Lines.Add(s);
  end;
end;

{上面那个不好看, 这个是用了 4 个空格做 Level 标识}
procedure TForm1.Button3Click(Sender: TObject);
var
  arr: array[0..MAXBYTE] of Char;
  i: Integer;
  s: string;
begin
  Memo1.Clear;
  FillChar(arr, Length(arr), #32);
  for i := 0 to TreeView1.Items.Count - 1 do
  begin
    s := Copy(arr, 0, TreeView1.Items[i].Level * 4);
    s := s + TreeView1.Items[i].Text;
    Memo1.Lines.Add(s);
  end;
end;

end.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/03/12/1101970.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
govcl v1.0.4 释出,GO 语言 UI 组件库

1、增加了TListView、TTreeView、TPageControl几个事件; 2、增加了TListView、TTreeView排序过程; 3、修复了New控件时使用CheckPtr增加安全检测; 4、增加了TListView、TTreeView排序,图像...

不在乎y
2017/12/21
2.4K
14
govcl 1.1.3 版本更新,GO 语言 UI 组件库

更新内容: TTreeView增加TTVAdvancedCustomDrawEvent、TTVAdvancedCustomDrawItemEvent事件 TListView增加TLVAdvancedCustomDrawEvent、TLVAdvancedCustomDrawItemEvent、TLVAdvancedCustom......

不在乎y
01/04
1K
8
GO 语言 UI 组件库 - govcl

由于现有第三方的Go UI库不是太大就是用的不习惯,或者组件太少。就萌生了自己写一个UI库的想法Delphi(Lazarus)有些许多优秀的VCL(LCL)组件,不拿来使用太可惜了。所以就索性做了一套。目前支...

不在乎y
2017/10/10
6.9K
17
依据数据集 进行 树 的构造(treeview & dataset) 方法一

type PDepData=^DepData; DepData = record ID: Integer; DepID: string; DepName: string; end; procedure FreeTV(tv: TTreeview); var i: Integer; begin for i := 0 to tv.Items.Count - ......

vga
2015/11/14
0
0
《HTML5学习笔记简明版》系列技术文章整理收藏

《HTML5学习笔记简明版》系列技术文章整理收藏 HTML5学习笔记简明版来自博客园的汤姆大叔,在HTML5学习笔记简明版汤姆大叔对HTML5有更详细的讲解,收藏在这里供学习参考 1HTML5学习笔记简明版...

开元中国2015
2015/06/22
11
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

以太坊总结

一、概念说明 1.以太坊(Ethereum blockchain)由V神(Vitalik Buterin)发明,是一个交易记录的永久数据库,它以一个“无信任”的交易系统来运行,不需要任何第三方信任机构即可进行点对点的...

盼望明天
25分钟前
1
0
Java并发工具类——AtomicInteger

基本类型int的递增等操作并不是线程安全的,加上synchronized又会影响性能,因此在并发情况下我们应该使用AtomicInteger,下面通过一个例子验证一哈。 public class TestAtomicInteger {...

东都大狼狗
27分钟前
1
0
基于CentOS7.2系统对RabbitMQ单机版安装过程

准备虚拟机系统 我的系统如下 系统版本7.2 安装perl yum install perl 安装wget工具 yum install -y wget 安装相关依赖工具 yum install ncurses ncurses-base ncurses-devel ncurses-libs ...

凌晨一点
31分钟前
1
0
Maven常用命令

Maven常用命令 说到命令,则不得不提一下环境变量,在之前的博文中简单提了一下环境变量的配置,这里具体说一下。说完环境变量的配置,然后就是Maven的常用命令,这里说的是常用的几个命令,...

星汉
48分钟前
0
0
Flink操作mysql kafka和hbase

主程序 package com.streaming.flink;import java.util.Properties;import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.common.functi......

守望者之父
59分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部