在listview的report模式下,有许多行数据时如何能够快速的按一个关键字定位一条记录。不是按caption匹配,而是按subitems中的某一列匹配。解决了有分。

解决方案 »

  1.   

    找一个类或自己编一个 Obj
    lItem:TListItem;
    lItem:=Lv.Items.add;
    lItem.caption:='asdf';
    Obj.Items[i].IndexStr:='???';
    lItem.Data:=Obj.Items[i];
    Obj.Items[i].Data:=lItem;
    在Obj中定位
    TListItem(Obj.Items[i].Data).Selected:=True;
      

  2.   

    用TStringList(Lst0)记录关键词,TList(Lst1)或TStringLIst记录TListItem,在TStringList中定位
    TListItem(Lst1[Lst0.IndexOf(关键词)]).Selected:=True
    代码看上去不爽,但可以实现