Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];

Вниз

Народ подскажите что здесь не так!!!   Найти похожие ветки 

 
Alexandra   (2003-12-25 21:53) [0]

Пишу этот код:
procedure TABOOTRUNMF.SpeedButton2Click(Sender: TObject);
var i:integer;
begin
try
for i:=0 to ABRLB.Items.Count-1 do
if ABRLB.Selected[i] then
begin
DeleteFile(ABRLB.Items.Strings[i]);
ABRLB.Items.Delete(i);
end;
except
on e:exception do
begin
MessageDlg(e.Message,mtError,[mbok],0);
end;
end;
end;
а компилятор выдает вот это:
List index out of bounds (1)
почему он выдает что не находит индекс, ведь все верно...


 
Ihor Osov'yak   (2003-12-25 21:57) [1]

Во первых, не компилятор.. Это рантайм ошибка.
Которая происходит от того, что при каждом удалении происходит уменшение количество элементов, и рано или поздно произойдет исключение, которое у вас происхлдит.. Сорри, за несовсем литературный стиль :-)

Делайте так:

for i:=ABRLB.Items.Count-1 downto 0 do
далее по тексту

идея, надеюсь, понятная..


 
Юрий Зотов   (2003-12-25 22:01) [2]

> Ihor Osov"yak © (25.12.03 21:57) [1]
> и рано или поздно произойдет исключение

А точнее, не рано и не поздно, а ровно посередине.
:о)


 
Fredericco   (2003-12-25 22:03) [3]

Я бы побоялся это в for делать.
В данном случае лучше while.


 
Ihor Osov'yak   (2003-12-25 22:05) [4]

2 [2] Юрий Зотов © (25.12.03 22:01)

Все верно, сер.. Но можно же иногда похвилосовствовать.. А можно и нет. Например, на тему, что такое "ровно середина" :-)


 
Юрий Зотов   (2003-12-25 22:06) [5]

> Ihor Osov"yak © (25.12.03 22:05) [4]

Это центр города Ровно.
:о)


 
Ihor Osov'yak   (2003-12-25 22:10) [6]

2 [3] Fredericco © (25.12.03 22:03)
Имеет смысл в случае многотопочной работы, если ABRLB.Items может модифицироваться в нескольких потоках одновременно, но там своя песня ... И стиль цыкла несет там главные грабли ..

Или еще в случае угрозы неявной рекурсии, инициализируемой из тела цыкла. Что, во первых, здесь не наблюдается, а если бы и наблюдалось, то бы был совет подумать об архитектуре..


 
Ihor Osov'yak   (2003-12-25 22:14) [7]

o [6]

несет -> не несет

зы - пофлеймить меня потянуло.. На снег, наверное..

2 Юрий Зотов
:-)


 
Alexandra   (2003-12-26 08:45) [8]

Народ может кто нибудь точно подскажет какой выход из этого?


 
Думкин   (2003-12-26 08:56) [9]

> [8] Alexandra (26.12.03 08:45)

Издеваешься? Тебе ответили сполна, хотя бы первым ответным постом.



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

Форум: "Потрепаться";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.012 c
1-49579
INTAARI
2004-01-05 16:02
2004.01.16
Каким компонентом пользоваться для обзора и выбора папок


1-49509
falk
2003-12-31 18:05
2004.01.16
HTML фильтр


7-49795
V-Isa
2003-11-04 13:05
2004.01.16
Звуковая карта


3-49465
Dimmu
2003-12-17 17:06
2004.01.16
Поле типа data/time в Access


6-49672
MSTX
2003-11-15 13:54
2004.01.16
Сети в Pascal





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский