str:='select * from renyuan where (dwbh<>03) order by rybh';
  with ADOQuery do
  begin
    SQL.Text := str;
    open;
    First;
    while not Eof do
    begin
      vItem := RzListView1.Items.Add;
      vItem.Caption :=adoquery.FieldByName('xm').AsString;
       Next;
    end;
  end;
  str:='select * from danwei where (dwbh<>07)  order by dwbh';
  with ADOQuery do
  begin
    SQL.Text := str;
    open;
    First;
 while not Eof do
    begin
      vItem := RzListView1.Items.Add;
      vItem.Caption :=gzdb_adoquery2.FieldByName('dwmc').AsString;
      Next;
    end;
  end;
执行上面的代码后,在listview中显示出来的项目,在用鼠标的3D滑动后,所有的项目会反复出现,非常奇怪,请求解决

解决方案 »

  1.   

    加个
    CloseSQL.Text := str;
        open;
        First;
      

  2.   

    在执行查询前加个
    RzListView1.Items.Clear; 试试;
      

  3.   

    你的这段代码是响应什么操作的?是不是就是响应鼠标的3D滑动?
    可以定义一个全局变量 进行判断是否已经操作过。
    比如:
    var IfOperate :boolean:
    初始化 IfOperate  := false;
    然后再这个过程中
    if ifoperate = false then
      begin
       if operate :=true;  
       ……//你这段代码
      end;
      

  4.   

    楼上的楼上,执行前加一个listview1.items.clear;操作,就没有了;