List index out of bounds.
To znaczy, że czytasz poza listą, czyli lista ma np. 10 elementów licząc 0-9, a ty próbujesz czytać element 11, czyli index 10, który nie istnieje.
Problem w tym, że do listy dodajesz tylko elementy zaznaczone w
CheckListBox, ale z listy
listsklad próbujesz czytać indeks o numerze
i, a przecież
i to całkowita wartość elementów na liście
CheckListBox, a nie na liście
listsklad. Co najwyżej możesz to zrobić tak:
for(int i = 0; i < CheckListBox1->Count; i++)
{
if (CheckListBox1->Checked[i])
{
listsklad->Add(CheckListBox1->Items->Strings[i]);
ShowMessage( listsklad->Strings[ listsklad->Count - 1 ] );
}
}
ListBox1->Items->Assign( SetDish() );