将所有选定的项目从ListView1复制到ListView2

hs2*_*s2d 1 delphi listview

如何将多个项目从TListView复制到另一个.现在我这样做:

procedure TForm1.CopyToRightClick(Sender: TObject);
var
  selected: TListItem;
  addItems: TListItem;
begin
  saveChanges.Visible := false;
  selected := deviceList.Selected;
  addItems := selectedDevicesList.Items.Add;
  addItems.Assign(selected);
end;
Run Code Online (Sandbox Code Playgroud)

但这样只会复制一个选定的项目.有没有办法复制所有选定的项目?

And*_*and 9

你可以做

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  ListView2.Items.BeginUpdate;
  try
    for i := 0 to ListView1.Items.Count - 1 do
      if ListView1.Items[i].Selected then
        ListView2.Items.Add.Assign(ListView1.Items[i]);
  finally
    ListView2.Items.EndUpdate;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

复制的所有选择列表视图项ListView1ListView2.

你可以做

procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
begin
  ListView1.Items.BeginUpdate;
  try
    ListView2.Items.BeginUpdate;
    try
      for i := ListView1.Items.Count - 1 downto 0 do
        if ListView1.Items[i].Selected then
        begin
          ListView2.Items.Add.Assign(ListView1.Items[i]);
          ListView1.Items[i].Delete;
        end;
    finally
      ListView2.Items.EndUpdate;
    end;
  finally
    ListView1.Items.EndUpdate;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

移动每一个选择列表视图项ListView1ListView2.