Кто поможет разобраться в коде по ListBox?
Заменить k := ListBox1.Items[ListBox1.ItemIndex]; на  k := ListBox1.Items.Strings[ListBox1.ItemIndex];
Примерно так, тут ошибка обращения по несуществующему иднексу, возможно нужно использовать -1(index)
вот что выводит