也许使用下面的语句有点用,但是我想主要是你添加数据的代码可能需要修改
ListView1.Items.BeginUpdate;
ListView1.Items.Add;
/////
ListView1.Items.EndUpdate;

解决方案 »

  1.   

    如果要提取数据的速度快的话,建议使用DBGrid,用ListView太慢了,如果你实在要用的话?
       ListView1.Items.Clear;
        with Frm_data.ADOQuery1 do
           begin
             close;
             SQL.Clear;
             SQL.Add('select spmc,zjm,jg,lb,sl,sj from rk order by spmc');
             Open;
             //状态栏上显示的记录条数!
             h1:=inttostr(RecordCount);
             StatusBar1.Panels[1].Text:='共有 '+h1+'  条记录';
             First;
             while not eof do
               begin
                 Tmp_item:=ListView1.Items.Add;
                 TMp_item.Caption:=Fields[0].Value;
                 Tmp_item.SubItems.Add(Fields[1].Value);
                 Tmp_item.SubItems.Add(Fields[2].Value);
                 Tmp_item.SubItems.Add(Fields[3].Value);
                 Tmp_item.SubItems.Add(Fields[4].Value);
                 Tmp_item.SubItems.Add(Fields[5].Value);
                 next;
               end;
           end;
    参考一下!
      

  2.   

    delphi封装的listview是有这个问题,你用程序给一个listview 加10000条记录,listview就像死机,要二十多分钟。
    建议每add一条,执行
    application.processmessage;