文档章节

学习 TTreeView [14] - StateIndex(状态图标)、OverlayIndex(叠加图标)

涂孟超
 涂孟超
发布于 2014/09/26 15:36
字数 419
阅读 8
收藏 0
点赞 0
评论 0
先给 ImageList1 添加图标如下:



关于 OverlayIndex 的提示:
在给一个节点指定 OverlayIndex 以前, 需要先用 ImageList1.Overlay 指定可用的 OverlayIndex 号.

测试效果图:


unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    ImageList1: TImageList;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure Edit2KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  node: TTreeNode;
begin
  {指定 ImageList}
  TreeView1.Images      := ImageList1;
  TreeView1.StateImages := ImageList1;

  {设定 OverlayIndex, 最多 4 个}
  ImageList1.Overlay(3,0); {参数1是 ImageList 中的序号; 参数2是指定可选的 OverlayIndex}
  ImageList1.Overlay(4,1);
  ImageList1.Overlay(5,2);
  ImageList1.Overlay(6,3);

  Label1.Caption := 'StateIndex:';
  Label2.Caption := 'OverlayIndex:';

  Edit1.Text := '-1';
  Edit2.Text := '-1';

  Button1.Caption := '初始化';

  {给 TreeView1 填充}
  with TreeView1 do begin
    Align := alLeft;
    Items.Add(nil, 'AAA');
    Items.Add(nil, 'BBB');
    Items.Add(nil, 'CCC');
    Items.Add(nil, 'DDD');
    Items.Add(nil, 'EEE');
    Items.AddChild(Items[4], '111');
    Items.AddChild(Items[4], '222');
    Items.AddChild(Items[4], '333');
    Items.AddChild(Items[4], '444');
  end;

  {指定图标状态}
  for node in TreeView1.Items do
  begin
    node.ImageIndex := 0;    {默认图标为第 0 个}
    node.SelectedIndex := 1; {选择图标为第 1 个}
    node.StateIndex := -1;   {状态图标暂无}
  end;
end;

{Edit1 控制 StateIndex}
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
var
  c: Char;
  edit: TEdit;
begin
  edit := TEdit(Sender);
  c := Chr(Key);
  if c in ['0'..'6'] then edit.Text := c else edit.Text := '-1'; {字符限制}

  TreeView1.Selected.StateIndex := StrToInt(edit.Text);          {作用于 TreeView}
end;

{Edit2 控制 OverlayIndex}
procedure TForm1.Edit2KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
var
  c: Char;
  edit: TEdit;
begin
  edit := TEdit(Sender);
  c := Chr(Key);
  if c in ['0'..'3'] then edit.Text := c else edit.Text := '-1'; {字符限制}

  TreeView1.Selected.OverlayIndex := StrToInt(edit.Text);        {作用于 TreeView}
end;

procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
  Edit1.Text := IntToStr(Node.StateIndex);
  Edit2.Text := IntToStr(Node.OverlayIndex);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  TreeView1.Items.Clear;
  FormCreate(nil);
end;

end.

 
 
 
 
 

 

 

  

© 著作权归作者所有

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
来自极客标签10款最新设计素材-系列十四

来源:GBin1.com 本周我们推荐来自极客标签社区带来的10款免费设计素材,大家可以在这里免费下载你需要的内容。如果你也有更好的作品,欢迎分享到社区中来,在得到帮助的同时,也能与更多人分...

gbin1 ⋅ 2013/08/21 ⋅ 0

Windows 7 任务栏开发 之 覆盖图标(Overlay Icon)

当第一次使用Windows 7 时,任务栏(Taskbar)的改变可以说让我眼前一亮。在以前版本Windows 桌面功能的基础上,Windows 7 任务栏为我们增添了许多其他功能:Jump Lists,Window Preview,P...

junwong ⋅ 2012/03/09 ⋅ 0

百度echarts中在使用geo3D加载的地图上面叠加散列图(scatter3D),图标有一半被埋在了地图,如何让图标紧靠地图表面?中

百度echarts中在使用geo3D加载的地图上面叠加散列图(scatter3D),图标有一半被埋在了地图,如何让图标紧靠地图表面?中

口衔青草 ⋅ 05/25 ⋅ 0

ChemDraw Prime 15主要工具有哪些

ChemDraw 15之所以能够比其他同类化学绘制工具出色最重要的原因当然是功能多,ChemDraw Prime 15作为新版ChemOffice组件中的基础版也有众多工具栏,渗透到各个绘制功能当中。常用的Chemdraw工...

学术研究软件 ⋅ 2016/04/14 ⋅ 0

iOS系统3DTouch全解析

概述 iOS10系统登录中国,在系统中对3D Touch的使用需求更频繁,所以对iOS9中便引入的3D Touch功能做一些了解是很有必要的 在日常开发中,我们经常需要使用3D Touch中的两个功能 在主屏幕上对应...

秦无炎 ⋅ 2016/11/14 ⋅ 0

删除android状态栏右侧图标

android 2.3.3系统上, 设置status bar 右侧的图标源码在,/frameworks/base/packages/SystemUI 这个package控制系统的图标显示。 类StautsBarPolicy的构造函数中定义了,各个图标显示方法的...

eric_zhang ⋅ 2012/02/14 ⋅ 0

WPF编游戏系列 之二 图标效果

本篇将要实现图标的两个效果:1. 显示图标标签,2. 图标模糊效果。在上一篇中提到Image没有HTML 的Title属性(在MSDN中也没找到类似的属性),所以本篇将自行制作一个标签,它的功能是当鼠标...

junwong ⋅ 2012/03/09 ⋅ 0

Android设计应用图标不用愁---Asset Studio Integration来帮你 .

2011-11-12 00:181295人阅读评论(6)收藏举报 Android Asset Studio Web版是一个非常好用的Andrid图标资源设计工具,它是由Roman Nurik开发的。 现在我们已经在ADT14里支持同样的功能。首先,...

qjami ⋅ 2012/06/05 ⋅ 0

自定义Tab Bar控件

用户的需求千奇百怪,总是让你不得不对iPhone一些控件的外观或功能做一些改变。众所周知,苹果自带的控件可定制性着实很差,这着让人很恼火,却又别无他法。幸好有网络的存在,我们可以找到许...

鉴客 ⋅ 2012/01/09 ⋅ 0

巧用渐变色打造精致移动端APP

渐变色是指某个物体的颜色从明到暗,或由深转浅,或是从一个色彩缓慢过渡到另一个色彩,充满变幻无穷的神秘浪漫气息的颜色。在扁平化设计刚刚兴起时,渐变是设计师们避之不及的设计手法。然而...

jongde ⋅ 01/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

笔试题之Java基础部分【简】【一】

基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法,其他 1.length、length()和size() length针对...

anlve ⋅ 21分钟前 ⋅ 1

table eg

user_id user_name full_name 1 zhangsan 张三 2 lisi 李四 `` ™ [========] 2018-06-18 09:42:06 星期一½ gdsgagagagdsgasgagadsgdasgagsa...

qwfys ⋅ 46分钟前 ⋅ 0

一个有趣的Java问题

先来看看源码: public class TestDemo { public static void main(String[] args) { Integer a = 10; Integer b = 20; swap(a, b); System.out......

linxyz ⋅ 50分钟前 ⋅ 0

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 今天 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 8

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部