Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.13;
Скачать: CL | DM;

Вниз

Где моя ошибка?   Найти похожие ветки 

 
Ross   (2002-04-27 19:22) [0]

Помогите. Не могу разобраться:

procedure TForm1.BitBtn1Click(Sender: TObject);
var
i:integer;
begin
i:=0;
try
if MessageDlg("Confirm!",
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
for i:=0 to RxCheckListBox1.Items.Count-1 do
begin
if RxCheckListBox1.Checked[i]=true then
RxCheckListBox1.Items.Delete(i);
end;
end
else
except
...
end;
end;


Вылетает ошибка:
---------------------------
Debugger Exception Notification
---------------------------
Project Dere.exe raised exception class EStringListError with message "List index out of bounds (3)". Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------


 
Шурко   (2002-04-27 19:32) [1]

Твоя ошибка в цикле
for i:=0 to RxCheckListBox1.Items.Count-1 do
:)))
перебор I например от 0 до 9 , а если 5 елемент удалить ????

надо писать:
for i:=RxCheckListBox1.Items.Count-1 downto 0 do

или :
I:=0;
while I<RxCheckListBox1.Items.Count do
if ... then RxCheckListBox1.Items.delete(I)
else inc(I);

Удачи и поменьше таких ляпов :)))).


 
Ally   (2002-04-27 19:33) [2]

Возможно все дело в том, что в теле цикла у Вас удаляются итемы, изначальное число которых было задано при входе посредством
> RxCheckListBox1.Items.Count-1
, которое, разумеется, изменяется при удалении, но кол-во заданных циклов остается прежним и i нарастает в соответствии с ним - здесь возникает ситуация, когда вы пытаетесь удалить, скажем, i-й итем, а у вас их уже i-2 из-за Delet"а в теле цикла.
Надеюсь, что не очень путано объяснил ситуацию :)

Удачи.


 
Ross   (2002-04-27 19:41) [3]

Точно. Спасибо Шурко и Ally. Не подумал. Но теперь буду знать точно.
Еще раз спасибо.



Страницы: 1 вся ветка

Текущий архив: 2002.05.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
4-39906
Aric
2002-03-12 15:24
2002.05.13
Перерисовать Image


1-39755
Demon Ltd
2002-04-27 17:35
2002.05.13
Работа с Query


6-39813
Hewlping
2002-03-01 18:01
2002.05.13
СРОЧНО!!


4-39885
Gayrus
2002-03-09 17:05
2002.05.13
>>Hooker ам


1-39753
Deus
2002-04-27 13:14
2002.05.13
TWebBrowser - как сохранить файл?