Главная страница
    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.45 MB
Время: 0.005 c
3-39678
Андрусь
2002-04-15 19:58
2002.05.13
Народ как сделать небазовый элемент


6-39823
boogier
2002-03-01 11:47
2002.05.13
Как получить список доступных в сети ресурсов компьютера по имени компьютера?


1-39752
Феликс
2002-04-27 22:44
2002.05.13
Как сделать, чтобы у определенной строки в Listbox был свой цвет.


1-39686
dkDimon
2002-04-27 00:15
2002.05.13
компоненты в стиле WinXP


1-39695
Riko
2002-04-29 14:57
2002.05.13
Обработка трех кнопок.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский