2011-05-07 74 views
1

如何将多个项目从TListView复制到另一个项目。现在我这样做:将所有选择的项目从ListView1复制到ListView2

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; 

但这样只有一个选定的项目被复制。有没有办法复制所有选择的项目?

+0

当它从源中消失时,我们称之为“移动”。 – 2011-05-07 23:39:56

回答

8

你可以做ListView1

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

副本每一个选择列表视图项ListView2

你可以做ListView1

procedure TForm1.Button2Click(Sender: TObject); 
var 
    i: Integer; 
begin 
    ListView1.Items.BeginUpdate; 
    ListView2.Items.BeginUpdate; 
    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; 
    ListView2.Items.EndUpdate; 
    ListView1.Items.EndUpdate; 
end; 

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

+0

谢谢,将每个选定的项目移动到另一个TListView正是我正在寻找的! – hs2d 2011-05-07 23:03:59

相关问题