ListItem1.Items.BeginUpdate;
while not eof do
begin
  Cname:=fieldbyname('Cname').asstring;
  CcardId:=fieldbyname('CcardId').asstring;
  ListItem1:=listview1.Items.Add;
  listItem1.Caption:=Cname;
  listItem1.SubItems.Append(Ccardid);//  listItem1.ImageIndex:=showIcon(date,Ccardid);//
  ListItem1.subItems.append(currentTime);
  next;
end;
ListItem1.Items.EndUpdate

解决方案 »

  1.   

    ListView1.Items.BeginUpdate;
    while not eof do
    begin
      Cname:=fieldbyname('Cname').asstring;
      CcardId:=fieldbyname('CcardId').asstring;
      ListItem1:=listview1.Items.Add;
      listItem1.Caption:=Cname;
      listItem1.SubItems.Append(Ccardid);//  listItem1.ImageIndex:=showIcon(date,Ccardid);//
      ListItem1.subItems.append(currentTime);
      next;
    end;
    ListView1.Items.EndUpdate
      
      

  2.   

    在程序初始化的时候计算listview.parent.height的值,取一个因子,我的尝试是10~15之间,得到每一次listview可以显示的item数,然后通过sql语句在数据表中查找:
    select top items.count * from xxxxtable where 条件
    这样每次可以取到有限个满足要求的记录,然后显示到listview中,向前向后翻页要注意:
    1 向后,取listview中的最后一个记录的id值为比较条件值:按照id>item中的id值进行升序(按照id)
    2 向前,取listview中的第一个记录的id值为比较条件值:按照id<item中的id值进行降序(按照id)
    3 如果是向后翻页,在向listview添加时:
    要将取回的记录由第一条到最后一条添加,
    如果是向前翻页,要将取回的记录由最后一条项第一条添加建议不要使用渐进搜索,让用户输入一个值按回车后执行查找
      

  3.   

    那你说如何能够减轻负担?不会是说用ado的时候限制取回记录数的属性吧?
      

  4.   

    谢谢 dsdc(研发中心) 
    谢谢给我的启发!
      

  5.   

    如果用ado的话,直接将取到的数据使用savetofile的方法存到本地,然后可以通过load调用,这样是不是就不用在本地建立另外一个数据表了?
      

  6.   

    Returns a list view item, if any, with the specified caption.function FindCaption(StartIndex: Integer; Value: string; Partial, Inclusive, Wrap: Boolean
    ): TListItem;
      

  7.   

    现在的问题是:
    搜索的代码:
    function  TfrmMainkq.findCardid(const card:String):Tlistitem;
    //card为要查找的卡号
    var i:integer;
    begin
    result:=nil;
    if listview1.Items.Count=0 then exit;
    for i:=0 to listview1.Items.Count-1 do
    begin
      if card=listview1.Items.Item[i].SubItems.Strings[0] then
      begin
        result:=listview1.Items[i];//如果检查到符合的员工自动退出循环
        break;
      end; 
    end;
    end;
    这样为什么很慢?怎么才能快点?
      

  8.   

    楼上的大哥能不能说的详细点,我的是要从当前listview.item中找到需要的item,该怎么用排序呢?