比如说我从TListItem中继承了一个类TTaskListItem,然后想让自己的TListView使用这个类,
我应该怎么做呢?难道把相关的属性全部重构一遍?

解决方案 »

  1.   

    TListView.AddItem的时候把你的TTaskListItem添加进去。关键字:多态。获取其实你也不一定要继承TListItem,用它上面的Data属性来关联自定义数据即可。
      

  2.   

    TListView.AddItem -> TListView.Items.AddItem(xxx)
      

  3.   

    如果想在TListView中使用TListItem,仿照TListView的定义,从TCustomListView继承,重写一份TTaskListView,将TListItem替换为TTaskListItem,个别涉及到TListItem的方法、语句改成TTaskListItem相关的,其他代码照抄就行
      

  4.   

    要自己从新写一下TListView的AddItem 
      

  5.   

    他说的貌似是TListItem,而不是TListItems
      

  6.   

    不明白为什么要重写,Add的时候Add TTaskListItem,取出来的时候转下型不就完了?
      

  7.   

    这个确实比较复杂。。
    把代码贴出来:  FItem:=TListItem;
      FItem:=FrmMain.TaskList.Items.Add;
      FItem.Caption := EditName.Text;
      FItem.SubItems.Add('-');
      FItem.SubItems.Add('-');
      FItem.SubItems.Add('-');看到些不错的方法。再观望观望,学习一下~
    PS:重写的话,就不是个别方法了。。TCustomListView中关于TListItem的地方实在太多了。
      

  8.   

    这个确实比较复杂。。
    把代码贴出来:  FItem:=TListItem;
      FItem:=FrmMain.TaskList.Items.Add;
      FItem.Caption := EditName.Text;
      FItem.SubItems.Add('-');
      FItem.SubItems.Add('-');
      FItem.SubItems.Add('-');看到些不错的方法。再观望观望,学习一下~
    PS:重写的话,就不是个别方法了。。TCustomListView中关于TListItem的地方实在太多了。
      

  9.   

    刚才马虎了,写出FItem:=TListItem;这样的吐血码。。
    本身是BCB码,转的时候失手了。
    应该是 var FItem: TListIteam;