TCollection 是TCollectionItenm对象的一个容器。
类关系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方法创建的项目的类。