在 Inno Setup 中从列表框传递到列表框时出错

Error when passing from List Box to List Box in Inno Setup

我试图将 ListBox1 剩余的项目添加到 ListBox2 以防止重复,我从我的问题 中得到了代码(完美地一个接一个地传递),我想在此时传递所有项目按按钮“>>”(将 ListBox1 上的项目传递给 ListBox2(无克隆列表框))。

并在 buttonClick 上获取它

代码如下:

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;

您的代码包含错误。您传递的是 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;