| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > list index out of bounds (-1) при удалении |
| Автор: Volkogriz 25.1.2013, 00:25 | ||
| Доброе время суток! При удалении строки из LISTBOX вылетает ошибка: list index out of bounds (-1) Что не так?
Заранее благодарен! С уважением, Volkogriz! |
| Автор: Данкинг 25.1.2013, 01:05 |
| Там после else случайно всё это не нужно в begin...end оформить? |
| Автор: Volkogriz 25.1.2013, 01:09 |
| Не чего не помогает!( |
| Автор: Данкинг 25.1.2013, 01:17 |
| Скорее всего, там просто строка не выбрана, поэтому индекс и равен -1. Попробуй явно кликнуть по Item'у листбокса, а затем уже вызвать процедуру удаления. |
| Автор: northener 25.1.2013, 01:43 |
Судя по приведённому коду LoadPlayList - локальная переменная некоей процедуры. Что вы от неё хотите получить, если вы её никак не инициализировали? И вообще не создали. |
| Автор: Volkogriz 25.1.2013, 15:58 |
| я просто обозначил StringList а на самом деле она глобальная:) Добавлено через 2 минуты и 6 секунд LoadPlayList создаётся при FormCreate ! |
| Автор: gesper 25.1.2013, 16:28 | ||
и вобще, для N11.Enabled:=true; используй ActionList... все проще будет. Когд по сути своей криво составлен. |
| Автор: northener 25.1.2013, 16:32 | ||
После этого удаления выделение в листбоксе теряется и listbox.ItemIndex становится равным -1. И на следующей строке
получаешь ту самую ошибку. |
| Автор: ZBugz 26.1.2013, 08:05 |
| Че то не понял кода, ты чего удалит ь в итоге хочешь ? Тока строку или вообще очистить TStrigList ? |
| Автор: Volkogriz 26.1.2013, 08:41 | ||
| вообще очистить TStrigList.Clear )) Мне нужно просто строку удалить в ListBox1 при этом строку с этим же индексам в TStrigList но эта не проблема. проблема в ошибке после удаления: list index out of bounds (-1) Избавился тупо проверив на ошибку:
Но пытаюсь сделать по человечески)) С уважением, Volkogriz! Добавлено через 3 минуты и 58 секунд Спасибо gesper, избавился от ошибки!) |
| Автор: ZBugz 26.1.2013, 20:51 | ||
| Тогда проще FreeAndNil(LoadPlayList) и все Потом не забудь создать заново А вообще begin end ставь как надо и у тебя чего делает ListBox.Items.Text ='' он всегда ''
Короче, или давай нормальный код или нормально формулируй1 вопрос. |