TCollection 正式的称呼应该是集合类,它能够包含 TCollectionItem 类型
的集合元素。
    该类主要用于控件的制作,如果一个控件拥有一个 TCollection (子)类型的
Property,Delphi 会自动为这个 Property 注册该属性的属性编辑器,即当
在 Object Inspector 中选中该属性时,右边会自动出现  ... 按钮。当点击
该按钮时,会弹出一个子属性编辑窗口,默认有“新建”、“删除”两个按钮。
当点击“新建”时,会生成一个 TCollectionItem (子)类的子对象。    选择这个子对象时,在 Object Inspector 中就可以编辑该子对象的属性。    但是 Delphi 如何知道 TCollection 的 子对象 TCollectionItem 的类型
呢?因为控件往往是继承了 TCollectionItem ,如 TDBGrid 的 TDBGridColumns
拥有 TColumn 类的子对象。原因在这里,请看 TCollection 类的构造函数:constructor TCollection.Create(ItemClass: TCollectionItemClass);
begin
  FItemClass := ItemClass; // 在这里注册了子对象的类型
  FItems := TList.Create;
end;TDBGrid 是这样做的:constructor TCustomDBGrid.Create(AOwner: TComponent);
begin
  ...
  FColumns := CreateColumns;
  ...
end;function TCustomDBGrid.CreateColumns: TDBGridColumns;
begin
  Result := TDBGridColumns.Create(Self, TColumn);
end;constructor TDBGridColumns.Create(Grid: TCustomDBGrid; ColumnClass: TColumnClass);
begin
  // 调用 TCollection 类构造函数注册子对象的类型
  inherited Create(ColumnClass); 
  FGrid := Grid;
end;