文档章节

学习 TTreeView [11] - Images、ImageIndex、SelectedIndex、StateImages、StateIndex

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


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ImgList, ComCtrls;

type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    ImageList1: TImageList;
    procedure FormCreate(Sender: TObject);
    procedure TreeView1Expanded(Sender: TObject; Node: TTreeNode);
    procedure TreeView1Collapsed(Sender: TObject; Node: TTreeNode);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  stream: TStream;
  node: TTreeNode;
begin
  TreeView1.Align := alLeft;
  stream := TMemoryStream.Create;
  with TStringList.Create do begin
    Add('一连长');
    Add(' 一排长');
    Add('  一班长');
    Add('   战士1');
    Add('   战士2');
    Add('   战士3');
    Add('   战士4');
    Add('  二班长');
    Add('  三班长');
    Add(' 二排长');
    Add(' 三排长');
    Add('二连长');
    Add('三连长');
    SaveToStream(stream);
    Free;
  end;
  stream.Position := 0;
  TreeView1.LoadFromStream(stream);
  stream.Free;

  {指定图像列表}
  TreeView1.Images := ImageList1;

  {初始化图标}
  for node in TreeView1.Items do
  begin
    if node.HasChildren then begin
      Node.ImageIndex := 0;
      Node.SelectedIndex := 0;
    end else begin
      node.ImageIndex := 2;
      node.SelectedIndex := 3;
    end;
  end;
end;

{闭合时}
procedure TForm1.TreeView1Collapsed(Sender: TObject; Node: TTreeNode);
begin
  Node.ImageIndex := 0;
  Node.SelectedIndex := 0;
end;

{展开时}
procedure TForm1.TreeView1Expanded(Sender: TObject; Node: TTreeNode);
begin
  Node.ImageIndex := 1;
  Node.SelectedIndex := 1;
end;

end.

 
 
 
 
 

 

 

  
通过 StateImages、StateIndex 可以再添加一个状态图标, 譬如:



比上面的程序多了两行代码:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ImgList, ComCtrls;

type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    ImageList1: TImageList;
    procedure FormCreate(Sender: TObject);
    procedure TreeView1Expanded(Sender: TObject; Node: TTreeNode);
    procedure TreeView1Collapsed(Sender: TObject; Node: TTreeNode);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  stream: TStream;
  node: TTreeNode;
begin
  TreeView1.Align := alLeft;
  stream := TMemoryStream.Create;
  with TStringList.Create do begin
    Add('一连长');
    Add(' 一排长');
    Add('  一班长');
    Add('   战士1');
    Add('   战士2');
    Add('   战士3');
    Add('   战士4');
    Add('  二班长');
    Add('  三班长');
    Add(' 二排长');
    Add(' 三排长');
    Add('二连长');
    Add('三连长');
    SaveToStream(stream);
    Free;
  end;
  stream.Position := 0;
  TreeView1.LoadFromStream(stream);
  stream.Free;

  TreeView1.Images := ImageList1;
  {多添加了下面两行}
  TreeView1.StateImages := ImageList1;
  TreeView1.Items[0].StateIndex := 4; {使用 ImageList1 中的第五个图标}

  for node in TreeView1.Items do
  begin
    if node.HasChildren then begin
      Node.ImageIndex := 0;
      Node.SelectedIndex := 0;
    end else begin
      node.ImageIndex := 2;
      node.SelectedIndex := 3;
    end;
  end;
end;

procedure TForm1.TreeView1Collapsed(Sender: TObject; Node: TTreeNode);
begin
  Node.ImageIndex := 0;
  Node.SelectedIndex := 0;
end;

procedure TForm1.TreeView1Expanded(Sender: TObject; Node: TTreeNode);
begin
  Node.ImageIndex := 1;
  Node.SelectedIndex := 1;
end;

end.

 
 
 
 
 

 

 

  

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

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
jasperreport生成HTML报表时的图片img_0_0_1问题解决(图片控件在HTML...

昨天网上找了很久都只见有人问img001问题,就是没有正确的答案,很郁闷,网上最多的是说的px图片显示的解决,那个比较简单,加个参数指定下路径就行,今天不多讲了,只讲关于自已插入的图片控...

china_xuxiang
2012/08/24
0
4
C# 语言表现树形结构—TreeView高级用法指南

最近由于项目的关系,对Microsoft在各种编程语言中提供的TreeView控件做了一些研究。最初在网上查了一下,除了Microsoft的MSDN有些分散的knowledge, 并没有发现有这方面主题文章,于是有了写...

长平狐
2012/06/11
628
0
C# 语言表现树形结构—TreeView高级用法指南

最近由于项目的关系,对Microsoft在各种编程语言中提供的TreeView控件做了一些研究。最初在网上查了一下,除了Microsoft的MSDN有些分散的knowledge, 并没有发现有这方面主题文章,于是有了写...

长平狐
2012/06/08
103
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
Matlab与图像识别图像检索系列之一——10行代码完成基于BOW的图像检索

今年11月下旬,京东金融发布了大数据比赛。长期搞图像的我忍不住想参加一下,看看都有什么样的人参加比赛,自己能取得什么样的成绩。现在比赛已经结束了,机器之心有一篇文章简单介绍了猪脸识...

holygao
2017/12/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

python:关于读取文件的指定行的问题

先来造一个文件:就叫做 test.txt吧,内容是下面这个样子: 表头1,数据12,数据23,数据34,数据45,数据56,数据67,数据7 那么我们并不打算把这个表头给读出来 怎么办呢? 先来打开文...

Oh_really
27分钟前
1
0
Rails 用现代 Rails 逃离单页面应用 “兔子洞”

在工作共总是觉得turbolinks非常爽,但是却总是被说成是过时的技术,大家都喜欢spa,哪怕不用的spa的人也是禁用掉的多,找不到很好的理由劝说别人使用,这篇文章说的很到位,或者说至少是牛人...

wmzsonic
31分钟前
0
0
Hive 分布式搭建,Spark集成Hive记录

本帖详细介绍搭建步骤,仅仅记录自己搭建过程以及采坑经历。 前提环境: Hadoop集群 版本2.7.2 Spark集群 版本2.1.0 Linux版本 Centos7 准备搭建 MySql版本5.5.61 ,Hive-2.1.0 去官网下载M...

我爱春天的毛毛雨
34分钟前
2
0
打包QML程序

1、windeployqt执行路径(D:\Qt\5.12.0\msvc2017_64\bin)加入到PATH中 2、使用Qt自带的命令行交互 Command 终端(Qt 5.12.0 64-bit for Desktop (MSVC 2017))切换到 Release 编译成功的exe...

渣渣曦
今天
4
0
优秀互联网高级测试工程师应该具备的能力

概述 在之前写的互联网高级测试工程师至少具备的能力一文中,提到了测试工程师至少具备的能力,但是并没有提到优秀测试工程师应该具备的能力,下文简单的谈一谈。当然这些全部都是我的个人理...

Sam哥哥聊技术
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部