我试图将从ListBox1留下的项目添加到ListBox2以防止重复,我从我的问题Prevent duplicate items in list box and combo box in Inno Setup?获得了代码(完美地逐个传递)并且我想要通过所有项目此时按下按钮“ >>”中(将ListBox1上留下的项目传递给ListBox2(没有克隆列表框))。
这是代码:
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;
答案 0 :(得分: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;