Delphi中的容器类

从Delphi 5开始VCL中增加了一个新的Contnrs单元,单元中定义了8个新的类,全部都是基于标准的TList 类。

TList 类

TList 类实际上就是一个可以存储指针的容器类,提供了一系列的方法和属性来添加,删除,重排,定位,存取和排序容器中的类,它是基于数组的机制来实现的容器,比较类似于C++中的Vector和Java中的ArrayList,TList 经常用来保存一组对象列表,基于数组实现的机制使得用下标存取容器中的对象非常快,但是随着容器中的对象的增多,插入和删除对象速度会直线下降,因此不适合频繁添加和删除对象的应用场景。下面是TList类的属性和方法说明:

属性 描述
Count: Integer; 返回列表中的项目数
Items[Index: Integer]: Pointer; default 通过以0为底的索引下标直接存取列表中的项目
方法 类型 描述
Add(Item: Pointer): Integer; 函数 用来向列表中添加指针
Clear; 过程 清空列表中的项目
Delete(Index: Integer); 过程 删除列表中对应索引的项目
IndexOf(Item: Pointer): Integer; 函数 返回指针在列表中的索引
Insert(Index: Integer; Item: Pointer); 过程 将一个项目插入到列表中的指定位置
Remove(Item: Pointer): Integer; 函数 从列表中删除指针
名称 类型 描述
Capacity: Integer; property 可以用来获取或设定列表可以容纳的指针数目
Extract(Item: Pointer): Pointer; function Extract 类似于Remove 可以将指针从列表中删除,不同的是返回被删除的指针。 
Exchange(Index1, Index2: Integer); procedure 交换列表中两个指针
First: Pointer; function 返回链表中的第一个指针
Last: Pointer; function 返回链表中最后一个指针
Move(CurIndex NewIndex: Integer); procedure 将指针从当前位置移动到新的位置
Pack; procedure 从列表中删除所有nil指针
Sort(Compare: TListSortCompare); procedure 用来对链表中的项目进行排序,可以设定Compare参数为用户定制的排序函数
时间: 2024-09-23 17:53:05

Delphi中的容器类的相关文章

Delphi中取得系统支持的颜色数的方法

在自己的软件中经常需要得知运行本软件的系统支持的颜色数.例如有的软件在16Bits的颜色数的计算机上开发而成,程序的颜色调试得非常漂亮,但是到了一台只支持16色的计算机上,程序变得非常难看.这就需要得到系统的颜色数. Delphi中如何取得系统的颜色数呢?下面的程序就解决这个问题. function GetSysColorNum:Integer; Var ScreenDc:HDC; NumBitsPixel:Integer; begin Result:=0; ScreenDc:=GetDC(0)

Delphi中TApplication类的用法

在Delphi中TApplication是一个有着十分重要作用的类.TApplication类是用于描述Delphi编制的应用程序的一个类.通过对这个类的灵活应用可以编制许多有特点的程序.. 1) 检测当前Windows程序是否被激活: TApplication类有一个属性--Active,这个属性就可以描述当前运行的程序是否被激活,成为Windows的焦点.检 测的代码如下: If Application.Active=False then ShowMessage('当前窗口没有被激活');

Delphi中利用钩子实现QQ聊天窗口的修改

有人曾为公司不让用QQ.MSN等聊天工具而烦恼吗?看了下面的小程序你就会打消这种看法了. 当初公司做校园一卡通的项目时,里面的机房客户端需要用到系统的低级键盘钩子WH_KEYBOARD_LL,这也是我第一次接触到Windows中的Hook,因为WH_KEYBOARD_LL和其他钩子不一样,在Delphi的Windows帮助以及windows.pas文件中都没有定义,但microsoft的msdn中确有WH_KEYBOARD_LL的介绍,所以一路解决后就对Windows的系统钩子产生了兴趣.之后相

Delphi中如何取得系统支持的颜色数

在自己的软件中经常需要得知运行本软件的系统支持的颜色数.例如有的软件在16Bits的颜色数的计算机上开发而成,程序的颜色调试得非常漂亮,但是到了一台只支持16色的计算机上,程序变得非常难看.这就需要得到系统的颜色数. Delphi中如何取得系统的颜色数呢?下面的程序就解决这个问题. function GetSysColorNum:Integer; Var ScreenDc:HDC; NumBitsPixel:Integer; begin Result:=0; ScreenDc:=GetDC(0)

Delphi中的消息处理

1.windows的消息驱动体系 在windows系统中,消息传递是实现对乡间通信和控制的主要手段.可以额系统都以消息驱动的方式工作.系统中发生的用户输入操作.显示信息的改变.系统环境参数变化等所有时间都以系统定义消息的形式出现在相关的应用程序和窗口.所以程序设计的主要任务就是为这些消息的处理设计代码. 在应用程序中,发送者可以通过发送消息要求接收者完成相应的处理.当程序运行时,windows系统为每个应用程序实例建立一个消息队列,一次保存发送给该程序实例的消息,在应用程序的主控部分,需要设置一

初探Delphi中的插件编程

前言 我写Delphi程序是从MIS系统入门的,开始尝试子系统划分的时候采用的是MDI窗体的结构.随着系统功能的扩充,不断有新的子系统加入系统中,单个工程会变得非常大,每次做一点修改都要重新编译,单个工程的形式也不利于团队协作.为了提高工作效率,我希望利用DLL动态链接库的形式实现插件结构的编程. 插件结构的编程需要一个插件容器来控制各DLL的运行情况,将划分好的每个子系统安排到一个DLL库文件中.对每个DLL程序需要为容器预留接口函数,一般接口函数包括:启动调用DLL库的函数.关闭DLL库的函

Delphi中实现让TListView接收文件拖放

在使用Delphi开发应用程序时常常要使用到TListView列表视控件,但是仅仅使用TListView的原有属性.方法和事件是不够的,常常需要在程序开发过程中对列表视的功能进行扩展, 比如对列表视添加任意列组合排序.ListItem拖动.CustomDraw自绘制.加入背景图等功能,由此可见Delphi自带的TListView列表视控件功能有限,并不让人感到满意.为了让列表视具有更多的功能,我们只有求助于第三方控件,或者自己编写代码对TListView进行改造. 最近我在用Delphi开发一个

在Delphi中的Access技巧集

1.DELPHI中操作ACCESS数据库(建立.mdb文件,压缩数据库) 以下代码在WIN2K,D6,MDAC2.6下测试通过, 编译好的程序在WIN98第二版无ACCESS环境下运行成功. //在之前uses ComObj,ActiveX //声明连接字符串 Const SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;' +'Jet OLEDB:Database Password=%s;'; //====

如何在Delphi中调用oracle的存储过程返回数据集

oracle|存储过程|数据 选自CSDN http://search.csdn.net/Expert/topic/2280/2280860.xml?temp=2.169436E-02 论坛中JCC0128 网友的发言 [delphi+oracle报表解决方案(一)]delphi中调用oracle的存储过程(分带返回游标,不返回值两种)  关键字: delphi ,oracle存储过程,游标,返回数据集,报表 注:delphi 6+ oracle 8.1.6 一.创建包与包体 1.附:建表aac