2011-05-07 40 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

相關問題