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坐标

……..

posted on 2015-08-08 18:13  del88  阅读(133)  评论(0编辑  收藏  举报