TCollection容器使用

//很多VCL类中有item属性,就是使用了集合类
//第一个子条目类,实例中通常用数组访问内容。
class TMyCollectionItem :public TCollectionItem
{
    public:
      AnsiString MessageStr;
      int        MessageNo;
      bool       dothing;
    
    __fastcall TMyCollectionItem(TCollection* Collection):TCollectionItem(Collection){};
};
//第二个类,管理类
class TMyCollection :public TCollection
{
    private:
      TMyCollectionItem * GetItem(int index);//子条目类
    public:
     __fastcall TMyCollection(TMetaClass * a):TCollection(a){}
      TMyCollectionItem * Add();
    __property TMyCollectionItem * Item[int]={read = GetItem};
};

TMyCollectionItem * TMyCollection::Add()//重载方法
{
     TMyCollectionItem * m_collect = new TMyCollectionItem(this);
     return  m_collect;
}
TMyCollectionItem * TMyCollection::GetItem(int index)
{
   TMyCollectionItem * re = (TMyCollectionItem *)Items[index];
   return re;
}

void __fastcall TForm1::Button4Click(TObject *Sender)
{
    TMyCollection * p = new TMyCollection(__classid(TMyCollectionItem));

    TMyCollectionItem * a = p->Add();
    a->MessageStr = "hello world";
    a->MessageNo  = 2000;
    a->dothing    = true;
    
    TMyCollectionItem * c= p->Item[0];
    ShowMessage(c->MessageStr);
}
//---------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值