![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ListView1.Items.Delete(i); [D7, WinXP]
Ag2002 © (2002-11-23 12:21:00)Подскажите почему при удалении элементов изсписка в ListView1
вылетает ошибка EAccessViolation, при выполнении следующего кода
...
for i:=0 to ListView1.Items.Count-1 do
if ListView1.Items[i].Selected then
ListView1.Items.Delete(i);
...
Не связано ли это с тем что индексы при удалении сдвигаются ? Как это лечить ?
Ag2002 (2002-11-23 12:44:00) [1]Спасобо понял !!!
Anatoly Podgoretsky (2002-11-23 12:32:00) [2]Ну прикинь, скажем у тебя две записи, после удаления [0] ты пытаешься обратиься к [1], а у тебя оно есть :-)
Делай обратный цикл.
ЮЮ (2002-11-23 12:30:00) [3]Именно с этим и связано
i:=0;
While i < ListView1.Items.Count do
if ListView1.Items[i].Selected then
ListView1.Items.Delete(i)
else inc(i);