文档章节

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

涂孟超
 涂孟超
发布于 2014/09/26 15:36
字数 419
阅读 8
收藏 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.

 
 
 
 
 

 

 

  

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

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

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

gbin1
2013/08/21
90
0
Windows 7 任务栏开发 之 覆盖图标(Overlay Icon)

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

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

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

口衔青草
05/25
0
0
ChemDraw Prime 15主要工具有哪些

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

学术研究软件
2016/04/14
46
0
iOS系统3DTouch全解析

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

秦无炎
2016/11/14
9
0

没有更多内容

加载失败,请刷新页面

加载更多

Cointext在阿根廷和土耳其推出比特币现金短信钱包

Cointext于10月15日开始在土耳其和阿根廷提供新的基于SMS的比特币现金钱包服务,这两个国家的加密货币使用量急剧上升,以应对严峻的经济形势。 移动钱包 通过短信处理BCH交易 “比特币是更好...

lpy411
25分钟前
1
0
大数据早课-0918

9.18日早课 1.全局搜索含有abc的文件名称或文件夹的命令 2.当前目录一般用什么表示 3.切换到上一次和上一层命令分别是什么 4.pwd是查看当前目录的什么 5.隐藏文件或文件夹的标识是什么? 怎样...

hnairdb
26分钟前
1
0
mybatis学习笔记一

一、mybaits需要的项目依赖 <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artif......

wuyiyi
27分钟前
2
0
CentOS6 安装 GraphicsMagick

1.安装相关依赖: yum install -y gcc libpng libjpeg libpng-devel libjpeg-devel ghostscript libtiff libtiff-devel freetype freetype-devel 2.下载并解压到目录/usr/local/ wget ft......

凯文加内特
28分钟前
1
0
RabbitMq集群使用Nginx做负载均衡

1.配置rabbitmq集群(可以参考前一篇RabbitMq之部署集群) 2.Nginx做负载均衡 注意:Nginx1.90版本后 新增了stream 模块用于一般的 TCP 代理和负载均衡,之前版本不支持 修改Nginx配置文件ngi...

zhaochaochao
33分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部