TImageList 组件是一组同样尺寸的图像列表,每一个图像由它的Index值查询。

1.TImageList组件的典型用法

图形列表用于建立和管理大量的图像,主要是配合菜单或者工具栏按钮的使用。图像列表中的所有图像的出场必须想通,每一个图像都有一个相异的序号。为什么要使用图像列表呢?以树状视图为例,如果没有图像列表,就要给每一个节点逐个附上一个或多个图标。这样可能要编写很胀的程序代码,儿且要维护大量的图标也是相当费劲的,有了图像列表就简单多了,维护图标的工作和程序分开,只需要制定一个图像立标,然后在代码中指定锁使用的图标在图像列表中的序号。

(1)在设计期建立图像列表

图像列表是通过TImageList组件实现的,要建立图像列表一般在设计期进行。搜西安,要吧TImageList组件放到Form上,然后再逐个组件上单击鼠标右键,在弹出的菜单中选择‘ImageList Editor’命令,Delphi将打开图像列表编辑器,

当建立一个新的图像列表时,’Images’框是空的。单击‘Add’按钮,可以指定一个要加到图像列表中的图像文件。这个图像将出现在‘Images’框内,图像列表只支持,bmp和.ico 两种格式的图像,图像尺寸一般设置为16*16或者32*32像素

要删除图像列表中的图像,首先要在‘Images’框内悬着一个图像,然后点击删除按钮。点击clear按钮把所有图像清空

在Options框内,可以选择是否要修建,伸展或居中加到图像列表中的图像。

(2)在运行期动态建立图像列表

一般情况下不需要在运行期对图像列表进行操作。如果要动态建立图像列表,可以参考下面的程序示例代码:

procedure  TForm1.Button1Click(Seder:TObject);

const

MyPath=’c:\program files\borland\delphi7\images\icons\’;

var

SearchRec: TsearChRec;

begin

Imagelist.creatSize(6,16);

if FindFirst(MyPath + ‘.bmp’,faAnyFile,searchrec)=0 then

begin

while FindNext(SearchRec)=0 do

ImageList1.FileLoad(rtBitmap.MyPath + SearchRec.Name,clNone);

FindClose(Searchrec);

end;

2.TimageList组件的重要属性

BkColor 此属性用于设置图像的背景颜色
BlendColor 此属性用于设置图形的前景颜色
Count 此属性用于返回图像列表中图像的个数
DrawingStyle 此属性用于设置图形显示的风格
Handle 此属性用于返回图像列表的句柄
Height 此属性用于设置图形的高度
Width 此属性用于设置图像的宽度
ImageType 此属性用于设置图形的类型
Masked 图形列表中允许有透明的图形

下面介绍程序中TI妈个Listzujian的常用属性。

(1)BkColor 属性

此属性用于设置图形题的背景颜色,列入可以将BkColor属性设置为引用图形的组建的前景色,这样图形现就就如同透明一样

(2)DrawingStyle属性

此属性用于设置图形显示的风格,他有如下4个可选值。

dsFocused   表示当前图像有输入焦点。

dsSelected  表示当前图像被选择

dsNormal    表示当前图像处于通常状态。

dsTransparent  表示当前图像是透明的

(3)Height 属性和Width 属性

这连个属性用来指定图形的高度和宽度。列入喜爱菜单中引用的图像进场将这个连个值设置为16(默认值),而在工具栏中是用时可以将这个连个属性设置为32,这样就可以是在工具栏中显示的图像比较大。当然这个两个值可以根据需要去不同的值。

(4)ImageType属性

此属性用于设置图像的类型,它有如下两个可选项

itImage     表示普通的图像

itmask       表示画的是图像的掩码

3.TImageList组件的重要方法

add 此方法想图像列表中加入一个图像及其掩码,并返回位图在图像列表中的索引号
AddIcon 此方法想图像列表中加入一个图标,并返回图标在图像列表中的索引号
AddImages 此方法用于把另一个TImageList组件的图像加到图像列表中
Addmasked 此方法向图像列表中加入一个图像
Assign 此方法用Source参数指定的另一个图像列表取代自己
Clear 清空图像列表中的所有图像
CreateSize 创建一个图像列表,并指定图像的高度和宽度
Delete 此方法用于删除图像列表中的一个图像
Draw 此方法吧图像列表中的指定序号的图像画到指定画布的指定的位置
DrawOverLay 此方法用于把图像列表中的指定序号的图像画到指定画布的指定位置
FileLoad 此方法用于从一个资源文件中读取图像到图像列表中
GetBitmap 此方法吧指定序号的图像写到Image参数指定的位图中
GetIcon 此方法是把指定序号的图像写到Image参数指定的图像中
Insert 此方法吧一个图标查到图像列表的指定序号之后
InserIcon 此方法是吧一个图标查到图像列表的指定序号之后
InsertMasked 此方法吧一个位图查到指定的序号之后
Move 此方法用于把图像列表中的一个图像移动到另一个位置
Replace 此方法用于一个新的位图机器掩码代替图像列表中指定序号的图像
ReplanceIcon 此方法用一个新的图标替换图像列表中指定序号的图像
TeplaceMasked 此方法用一个新的位图代替图像列表中指定序号的图像
ResourceLoad 此方法从一个指定的资源文件中取出指定类型的图像到图像列表中

下面介绍程序中TImageList组件常用的方法。

(1)Add方法

此方法向图像列表中加入一个位图节气掩码,并返回位图在图形列表中的索引号。他有两个烈性为TBitMap类型的参数

Image     加入的位图

Mask      位图的掩码

(2)AddIcon 方法

此方法想图像列表中加入一个图标,并返回图标在图像列表中的索引号。AddIcon方法也Add方法类似,只是AddIcon方法中的参数Image是TIcon类型。下面的代码就是想图像列表组件中调价一个图标的例子:

var

icon:TIcon;

i: Integer;

begin

Icon:=Ticon.create;

Icon.LoadFromFile(‘c:\Mgr.ico’) //为Icon调入一个图标文件

I:= Imagelist1.addicon(Icon);

Icon.Free

end;

(3)AddImages 方法

此方法用于把另一个TImageList组件的图像加到图像列表中。AddImages方法中的Value参数是TCusTomImageList类型,例如用下面的代码可以将量个TImageList组件的图像合并到一个图像列表中。

ImageList1.Addimages(Imagelist2);  //将ImageList2d图像添加到ImageList1中

(4)Assign 方法

此方法用TPersistent类型的Source参数指定另一个图像列表取代自己,Assign方法的使用参考AddImages方法的实例代码

(5)Clear 方法

此方法用于清空图像列表中的所有图像。例如ImageList1图像列表中的所有图像,可以用下面的代码实现“

ImageList1.Clear;

(6)CreatSize方法

此方法实际是TImageList的构造。用于创建一个图像列表,并指定图像列表中图像的高度和宽度。GreateSize方法中有如下两个参数

AWidth     图像的宽度

AHeight     图像的高度

在一个已经引用图像的列表中,可以利用此方法重新指定图像的宽度和高度

(7)Draw方法

此方法吧图像列表中的指定序号的图像画到指定画布的指定位置。Draw方法设定了如下4个参数。

Canvas 指定的画布

x     :指定的位置x坐标

y     :  指定的位置y坐标

Enabled  指定图像的显示状态,True表示正常显示,False表示灰度显示。

例如下面的代码是姜ImageList1组件索引为2的图像画到Form1窗体(50,50)坐标处

ImageList.Draw(Form1.Canvs,50,50,2,True);

(8)DrawOverlay 方法

此方法用于把图像列表中指定序号的图像滑到指定画布的指定位置。DrawOverlay 过程设定了如下6个参数

Canvas      加入位图

x     :指定的位置x坐标

y     :  指定的位置y坐标

……..

图像列表组件(TImageList)的更多相关文章

  1. 列表组件抽象(2)-listViewBase说明

    这是我写的关于列表组件的第2篇博客.前面的相关文章有: 1. 列表组件抽象(1)-概述 listViewBase是列表组件所有文件中最核心的一个,它抽象了所有列表的公共逻辑,将来如果有必要添加其它公共 ...

  2. 可展开的列表组件——ExpandableListView深入解析

    可展开的列表组件--ExpandableListView深入解析 一.知识点 1.ExpandableListView常用XML属性 2.ExpandableListView继承BaseExpanda ...

  3. 使用Matrix控制图像或组件变换的步骤

    1.获取Matrix对象,该Matrix对象既可新创建,也可直接获取其他对象内封装的Matrix(例如Transformation对象内部) 2.调用Matrix的方法进行平移.旋转.缩放.倾斜等. ...

  4. Bootstrap学习之路(3)---列表组件

    列表是几乎所有网站都会用到的一个组件,正好bootstrap也给我们提供了这个组件的样式,下面我给大家简单介绍一下bootstrap中的列表组件的用法! 首先,重提一下引用bootstrap的核心文件 ...

  5. Android(java)学习笔记186:对ListView等列表组件中数据进行增、删、改操作

    1.ListView介绍 解决大量的相似的数据显示问题 采用了MVC模式: M: model (数据模型) V:  view  (显示的视图) C: controller 控制器 入门案例: acit ...

  6. h.264参考图像列表、解码图像缓存

    1.参考图像列表(reference picture list) 一般来说,h.264会把需要编码的图像分为三种类型:I.P.B,其中的B.P类型的图像由于采用了帧间编码的这种编码方式,而帧间编码又是 ...

  7. bootstrap 之 列表组件使用

    列表是几乎所有网站都会用到的一个组件,正好bootstrap也给我们提供了这个组件的样式,下面我给大家简单介绍一下bootstrap中的列表组件的用法! 首先,重提一下引用bootstrap的核心文件 ...

  8. React-Native新列表组件FlatList和SectionList学习 | | 联动列表实现

    React-Native在0.43推出了两款新的列表组件:FlatList(高性能的简单列表组件)和SectionList(高性能的分组列表组件). 从官方上它们都支持常用的以下功能: 完全跨平台. ...

  9. Vue列表组件与弹窗组件示例

    列表组件 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <me ...

  10. Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件

    UI的描述 对于Android应用程序中,所有用户界面元素都是由View和ViewGroup对象构建的.View是绘制在屏幕上能与用户进行交互的一个对象.而对于ViewGroup来说,则是一个用于存放 ...

随机推荐

  1. 《3D编程模式》写书-第2次记录

    大家好,目前我已经完成了"拼接模式"."撤销重做模式"."ECS模式"的初稿 下面会给出它们的使用场景,如果您正好能用到,请联系我提前阅读模 ...

  2. 真实感渲染:WebGPU介绍和使用光栅化管线绘制一个三角形

    大家好~本课程为"真实感渲染"的线上课程,从0开始,介绍相关的图形学算法和数学基础,给出详细的数学推导.伪代码和实现代码,最终带领大家开发出基于物理的渲染器 线上课程资料: 本节课 ...

  3. uni-app安卓手机无法连接到调试服务

    uni-app连接安卓真机,发现接口调不通,打开Hbuilder下方的调试.可查看失败原因:如下图 解决方法:电脑变热点,手机连这个热点,就能解决手机和pc在同一局域网.具体操作,参照以下网站: ht ...

  4. SV OOP-1

    内容 面向对象编程 面向对象的基本概念 对象没有办法直接操作,需要通过handle(指向对象的指针)进行操作 面向对象的基本术语 面向对象的优势 类的定义 实例化对象 new() - 产生具体对象,开 ...

  5. APP Inventor的tcp连接扩展插件ClientSocketAl2Ext

    参考原文:https://www.cnblogs.com/bemfa/p/13390251.html 下载地址:https://wwtl.lanzoum.com/ik0Ky1clu41a B站关联学习 ...

  6. 最新版TikTok 抖音国际版解锁版 v33.1.4 去广告 免拔卡

    软件简介: 抖音国际版App是全球最受欢迎的短视频应用,抖音国际版TikTok(海外版)横扫全球下载量常居榜首.这是最新抖音国际版解锁版,无视封锁和下载限制,国内免拔卡,去除了广告,下载视频无水印(T ...

  7. 关于decimal非常浅显的学习与整理

    关于decimal非常浅显的学习与整理 背景知识 整数,小数,浮点,定点 整数(Integer)是没有小数部分的数值,可以是正数.负数或零.在计算机中,整数通常以二进制形式存储. 小数(Decimal ...

  8. [转帖]鲲鹏性能优化十板斧——鲲鹏处理器NUMA简介与性能调优五步法

    https://www.cnblogs.com/huaweicloud/p/12166354.html 1.1 鲲鹏处理器NUMA简介 随着现代社会信息化.智能化的飞速发展,越来越多的设备接入互联网. ...

  9. [转帖]xsos - Summarize system info from sosreports

    https://github.com/ryran/rsar I'M LOOKING FOR RSAR SCREEN SHOTS INTRO INSTALLATION EXAMPLES IN ACTIO ...

  10. [转帖]SpringBoot项目banner.txt生成教程

    文章目录 近期在做毕业设计,后端框架用到了SpringBoot,可以自己个性化设置banner.txt 地址:https://www.bootschool.net/ascii 可以直接下载,然后直接将 ...