2017-05-25 24 views
0

我試圖從列表框1添加項目到列表框2防止重複,我從我的問題Prevent duplicate items in list box and combo box in Inno Setup?(作品完美傳遞一個接一個)代碼,我想通過此時所有項目都按下「>>」(將ListBox1上的項目傳遞給ListBox2(無克隆列表框))。 enter image description here錯誤,當從列表框到創建設置中的列表框

,並得到該上buttonClick enter image description here

下面的代碼:

procedure botonDerechaTodos(Sender: TObject); 
begin 
    if (listBoxMonedasDisponibles.ItemIndex >= 0)then 
    begin 
     if listBoxMonedasSecundarias.Items.IndexOf(listBoxMonedasDisponibles.Items[listBoxMonedasDisponibles.ItemIndex]) < 0 then 
     listBoxMonedasSecundarias.Items.Add(listBoxMonedasDisponibles.Items[listBoxMonedasDisponibles.Items]); 
     listBoxMonedasDisponibles.Items.Delete(listBoxMonedasDisponibles.Items);  
     comboBoxMonedaPrincipal.Items := listBoxMonedasSecundarias.Items; 
     comboBoxMonedaPrincipal.ItemIndex := 0; 
     listBoxMonedasSecundarias.ItemIndex := 0;    
    end; 
end; 

回答

2

您的代碼包含一個錯誤。你通過Items而不是ItemIndex

你有

listBoxMonedasSecundarias.Items.Add(listBoxMonedasDisponibles.Items[listBoxMonedasDisponibles.Items]); 

應該

listBoxMonedasSecundarias.Items.Add(listBoxMonedasDisponibles.Items[listBoxMonedasDisponibles.ItemIndex]); 

你有一個類似的錯誤在這裏:

listBoxMonedasDisponibles.Items.Delete(listBoxMonedasDisponibles.Items); 

應該

listBoxMonedasDisponibles.Items.Delete(listBoxMonedasDisponibles.ItemIndex); 

針對您的評論提出的問題,使用AddStrings(我不是鍵入所有這些長變量名):

ListBoxDest.Items.AddStrings(ListBoxSource.Items); 
ListBoxSource.Items.Clear; 
+0

因爲我想要什麼行不通, 我已經使用這些代碼你說沒有問題按鈕「>」(傳遞項目一個接一個),但我想添加(傳遞)從listBoxMonedasDisponibles左列表框的所有項目listBoxMonedasSecundarias使按鈕「>>」(傳遞所有)。有沒有辦法修改來做到這一點? –

+0

@AngelMontesdeOca:查看我的編輯。 –

+0

非常感謝,我真的很喜歡。 –