Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
ВнизChecklistbox Найти похожие ветки
← →
Ibn El Ivan (2004-07-26 14:32) [0]Подскажите пожалуйста для удаления из Checklistbox используется цикл:
for i:=0 to checklistbox.count-1 do
При запуске проги и при попытке удаление нескольких отмеченных элементов появляется сообщение об ошибке: list index out of bounds
if checklistbox.checked[i] then checklistbox.items.delete(i);
← →
Subdigger © (2004-07-26 14:35) [1]при удалении параметр checklistbox.count становится на 1 меньше
правильно будет такi:=0;
while i<checklistbox.count do
if checklistbox.checked[i] then checklistbox.items.delete(i)
else inc(i);
← →
@Lex © (2004-07-26 14:35) [2]i:=0;
while i < checklistbox.count do
if checklistbox.checked[i] then checklistbox.items.delete(i)
else Inc(i);
← →
Ega23 © (2004-07-26 14:37) [3]Естественно. Потому, что когда ты делаешь
checklistbox.items.delete(i)
твойchecklistbox.count
становится меньше на единицу.
Здесь тебе не for цикл нужен, а while
← →
Андрей Л. (2004-07-26 14:37) [4]При удалениии элемента из списка, весь список перенумеровывается, и от этого элементов ставновится меньше.
← →
Ibn El Ivan (2004-07-26 14:39) [5]Спасибо!!
← →
ssk © (2004-07-26 14:49) [6]можно и for do, только цикл гнать с конца:
for i:=MAXVALUE downto 0 do
....
← →
ssk © (2004-07-26 14:49) [7]можно и for do, только цикл гнать с конца:
for i:=MAXVALUE downto 0 do
....
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.033 c