当把数据从listview1添加到listview2时如何禁止重复添加procedure TForm1.Image38Click(Sender: TObject);
  var     ListItem:   TListItem;
    i:integer;
  item:tlistitem;
  begin
      with   listview2   do
      begin
          for   i:=0   to   ListView1.Items.Count   -1   do
          begin
              if   listview1.Items[i].Checked   then
              begin
                  ListItem:=Items.Add;
                  listitem.Caption:=listview1.Items[i].Caption;
                  listitem.SubItems.Add(listview1.Items[i].SubItems[0]);
                  listitem.SubItems.Add(listview1.Items[i].SubItems[1]);
                  listitem.SubItems.Add(listview1.Items[i].SubItems[2]);
                  listitem.SubItems.Add(listview1.Items[i].SubItems[3]);
                  listitem.SubItems.Add(listview1.Items[i].SubItems[4]);
                  listitem.SubItems.Add(listview1.Items[i].SubItems[5]);
                  listitem.SubItems.Add(listview1.Items[i].SubItems[6]);
                  listitem.SubItems.Add(listview1.Items[i].SubItems[7]);
                  listview1.setfocus;
              end;
          end;
      end;
  end;菜鸟,希望具体点,感谢

解决方案 »

  1.   

    //不太清楚你指的重复是以何为标准,权当是以Caption重复为判定吧。//加个判断函数
    function TForm1.ChkBool(ACaption : string) : Boolean;
    var
      i : integer;
    begin
      Result := True;
      for i := 0 to ListView2.Items.Count - 1 do
      begin
        if listview2.Items[i].Caption := ACaption then
        begin
          Result := false;
          Break;
        end;
      end;
    end;procedure TForm1.Image38Click(Sender: TObject);
      var     ListItem:   TListItem;
        i:integer;
      item:tlistitem;
      begin
          with   listview2   do
          begin
              for   i:=0   to   ListView1.Items.Count   -1   do
              begin
                  if listview1.Items[i].Checked and ChkBool(listview1.Items[i].Caption) then
                  begin
                      ListItem:=Items.Add;
                      listitem.Caption:=listview1.Items[i].Caption;
                      listitem.SubItems.Add(listview1.Items[i].SubItems[0]);
                      listitem.SubItems.Add(listview1.Items[i].SubItems[1]);
                      listitem.SubItems.Add(listview1.Items[i].SubItems[2]);
                      listitem.SubItems.Add(listview1.Items[i].SubItems[3]);
                      listitem.SubItems.Add(listview1.Items[i].SubItems[4]);
                      listitem.SubItems.Add(listview1.Items[i].SubItems[5]);
                      listitem.SubItems.Add(listview1.Items[i].SubItems[6]);
                      listitem.SubItems.Add(listview1.Items[i].SubItems[7]);
                      listview1.setfocus;
                  end;
              end;
          end;
      end;
      

  2.   

     if listview2.Items[i].Caption := ACaption then 
    改为: if listview2.Items[i].Caption = ACaption then 
    手误,抱歉
      

  3.   

    解决的思路就是在你向listview2添加数据时,先判断下添加的数据是否已经在listview2中存在,如果不存在就添加,否则就不能添加;楼上那个函数就可以
      

  4.   

    解决的思路就是在你向listview2添加数据时,先判断下添加的数据是否已经在listview2中存在,如果不存在就添加,否则就不能添加;楼上那个函数就可以