TCollection

类关系TObject→TPersistent

  每一个TCollection都拥有一组TCollectionItem对象。
  在其Items属性数组中,TCcllection保存集合项目的一个下标。Count 属性包含了集合的项目数量。使用Add和Clear方法可以向集合中加入项目和从集合中删除项目。
  从TCollection继承的对象能够包含从TCollectionItem继承的对象。例如,一个TDBGridColumns对象包含TColumn对象,这两个类被TDBGrid对象用于表示网格。下表列出了每一个TCollection对象的子类与相应的TCollectionltem对象的子类以及使用控制组件。其中,TQuryTableProducer和TWehDispetcher使用的控件继承自TWinContril对象。

TCollection子类 TCollectionItem子类 控件组件

TCheckConstraints TCheckConstraint 使用Tfield对象的控件
TCookieCollection TCookie HTTP响应对象
TCoolBands TCoolBand TCoolBar
TDBGridColumns TColumn TDBGrid
TDependencies TDependency TService
TDisplayDims TDisplayDim TDecisionGrid
TFieldDefs TfieldDef TDatsSet
THeaderSections THeaderSection THeaderControl
TIndexDefs TIndexDef TTable
THTMLTableColumns THTMLTableColumn TQueryTableProducer
TListColumns TListColumn TListView
TSuatusPanels TSuatuspanel TStatusBar
TWebActionItems TwebActionitem TwebDispatcher

  使用TCollection和TCollectionitem子类的控件,都有一个拥有一个集合5的公开属性(例如,TStatusBar的Panels属性拥有一个TStatusPanels)。一个标准的属性编辑器,从种属上说被认为是集合编辑器,它被授引自Object Inspector,以编辑集合中的项目。

属性列表
Count 返回集合中的项目数量
ItemClass 表示集合项目有种类
Items 提供对集合中项目的变址访问

方法列表
~TCollection 删除集合及其内的每一项目
Add 创建一新对象实例并加 入到Items属性数组中
Assign 将另一集合有内容复制到执行该方法的对象中
Bcginupdate 使屏幕更新暂停
Clear 从集合中删除所有项目
EndUpdate 使屏幕能够重新进行更新
FindItemID 返回ID参数指定的项目
Insert 创建TCollectionItem对象并加入到Items属性数组中
TCollection 创建并初始化一个集合

属性
TCollection::Count
  用于返回集合中的项目数量。
 __property int Count = {read=getCount,nodefanlt};
  Count属性包含了Items属性数组中的项目数量。因为Items属性数组的下标从0开始,因此,Count属性数值总是比Items属性数组最后一个成员的下标大1。

TCollection::ItemClass
  表示集合项目的类。
 __property int count = {read =GetXount,nodefauit};
  ItemClass返回属于集合的项目的类(继承自TColliectionItem对象)。例如,在TCollection对象THeaderSections子类有一个实例中,IetmClass属性返回THeaderSection .

TCollection::Items
  提供对集合中项目的变址访问。
 __property TCollectionItem*irems{int Index}={read =GetItem,write=SetItem};
  使用Items属性可以访问集合中的单个项目。Index参数的数值对应于TCollectionItem对象的Index属性。它表示项目 在集合中有位置。

方法
TCollection::~TCollection
  删除集合及其内的每一个项目 。
  __fastcall virtual~TCollection(void);
  不要直接调用~TCollection 用delete会自动调用~TCollection
  ~TCollection调用Clear方法,释放在Items属性数组中每一个被子引用的项目,然后删除集合本身。

TCollection::Add

  创建一个新的TCollectionItem对象实例,并将其加入到Items属性数组中。
 TCollectionItem* __fasteall Add(void);
  调用Add可以在集合中创建一个项目。新项目被放置在Items属性数组的结尾处。Add返回新集合项目。

TCollection::Assign
  将另一个集合的内容复制到执行该方法的对象。
 virtual void __fastcall Assign (TPersistemt*Source);
  使用Assign,可以将一个TCollection对象实例的内容复制至另一个TCollection对象。Assign方法删除目的集合(即执行该方法的对象)中的所有项目,然后加入由Source参数指定的集合的Items属性数组中的每一个项目的复制。

TCollection::BeginUpdate
  使屏幕更新暂停。
 void __fastcall BeginUpdate(void);
  BeginUpdate使屏幕更新暂停,直至调用了EndUpdate方法。使用BeginUpdate可以加速进行处理,并且当向一个集合中加入项目或从一个集合中删除项目时,可以避免闪烁。

TCollection::EndUpdate
  从集合中删除所有项目。
 void __fastcall CIear(void);
  CIear清空Items属性数组并删除每一个TCollectionItem对象。

TCollection::EndUpdate
  使屏幕能够重新进行更新。
 void __fastcall EndUpdate(void);
  使用EndUpdate,可以使以BeginUpdate方法关闭的屏幕能够重新进行更新。

TCollection::FindItemID
  返回ID参数指定的项目。
 TCollectionItem* __fastcall FindItemID(int ID);
  FindItemID方法返回集合中的项目,该项目的ID属性被作为一个参数传递。如果没有ID参数指定的项目,则FindItemID返回NULL.

TCollection::Insert
  创建一个新的TCollectionItem对象实例,并将其加入到Items属性数组中。
 TCollectionItem* __fastcall Insert(int Index);
  调用 Insert,可以在集合中的一个指定位置处加入一个新项目。在Items属性数组中已经存在的从指定位置开始的项目将向上移动。Insert返回新集合项目。

TColletion::TCollection
  创建并初始化一个集合。
 __fastcall TCollection (Sysem::TMetaCIass*ItemCIass);
  不要直接调用 TCollection。用new会返回新集合的一个间接引用。
  TCollection方法取一个TCollectionItem子类名作为一个参数。该参数确定了由Add方法创建的项目的类
Elite Container是DELPHI下的一个轻量级IoC对象容器(IoC:Inverse of Control,反转控制)。它是参考了Java中的Spring框架(主要是配置文件的写法),并结合DELPHI的特点来构建的。相比Spring的对象容器,它提供的功能更为精简常用(如对象延迟创建、对象属性自动注入等),降低了学习的难度,并且提供了很多扩展点,你只需简单地写一个插件实现类,并在配置文件中进行简单配置,就可以让Elite Container拥有你的自定义功能! 借助Elite Container和Ioc思想,你可以更轻易地构建出具有松散耦合、重用度高的应用程序。它的核心思想就是拆分功能的接口和实现,上层只依赖于下层的接口,然后通过Elite Container的配置,把不同的实现类注入到该接口中,达到更换功能,也就是复用已有代码的目的。设计人员可以真正地发挥好自己的面向对象思想和相关设计模式,来架构企业级的应用程序,而无需象以前那样,在Delphi中用起面向对象总有点捉襟见袖的感觉。 ps. 由于写程序,还有精心准备的26个例子,都花费了我很多的时间,所以象征性地收2个资源分,希望大家不会介意:) ps2. 说明一下,开发出来的程序在发布的时候,除了发布EliteCore.bpl、EliteContainer.bpl外,还需要发布rtl.bpl(EliteCore.bpl引用到了它)。由于一时疏忽,例子中的Bin目录里忘记带上它了,请大家注意,谢谢~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值