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

Вниз

Так сколько раз будет вычеслено условие цикла???   Найти похожие ветки 

 
Ega23 ©   (2007-03-06 13:50) [0]

Ловлю List index out of bounds.
Есть код

procedure TAlarmLogicsModule.dropAllAlarms;
var
 ai : IAlarmItem;
 i : Integer;
begin
 if get_count=0 then Exit;
 for i:= get_count-1 downto 0 do   // <- вот тут get_count каждый раз будет вызываться?
  begin
   ai := get_alarm(i);
   ai.drop;
   ai := nil;
  end;
end;

function TAlarmLogicsModule.get_count: integer;
begin
 Result := FList.Count;
end;


 
MBo ©   (2007-03-06 13:58) [1]

нет, только один раз при старте цикла


 
Ega23 ©   (2007-03-06 14:00) [2]


> нет, только один раз при старте цикла


Это точно? Никакими там опциями компиллятора не меняется?
(Просто если оно так, то тогда ясно где ошибку искать)


 
Думкин ©   (2007-03-06 14:01) [3]


> Ega23 ©   (06.03.07 14:00) [2]

Это обсуждалось на форуме неоднократно. Это язык Паскаль такой. Один раз.


 
Gero ©   (2007-03-06 14:02) [4]

Если кто не верит — все легко проверяется с помощью F7.


 
Ega23 ©   (2007-03-06 14:05) [5]


> Если кто не верит — все легко проверяется с помощью F7.


Трудно проверить. Надо сначала всё собрать, сымитировать кучу тревог, а уж потом...  :)

Ладно, всё теперь ясно, где "собака порылась". Всем спасибо!


 
tesseract ©   (2007-03-06 14:37) [6]


> Gero ©   (06.03.07 14:02) [4]
> Если кто не верит — все легко проверяется с помощью F7.


F5 на строку процедуру - и смотрим.


 
McSimm_   (2007-03-06 15:05) [7]

Не получилось представить себе логику, при которой инициализация переменной цикла срабатывала бы при каждом проходе. Хоть Паскаль, хоть Си.


 
Сотрудник деканата   (2007-03-06 16:37) [8]

if get_count=0 then Exit;

Это лишнее.


 
Германн ©   (2007-03-07 01:21) [9]


> Сотрудник деканата   (06.03.07 16:37) [8]
>
> if get_count=0 then Exit;
>
> Это лишнее.
>

Может это относится к разряду "обжёгшись на молоке, дуем на воду" :)


 
Skyle ©   (2007-03-07 06:47) [10]


> Германн ©   (07.03.07 01:21) [9]
> > Сотрудник деканата   (06.03.07 16:37) [8]
> >
> > if get_count=0 then Exit;
> >
> > Это лишнее.
> Может это относится к разряду "обжёгшись на молоке, дуем
> на воду" :)

Это также может относиться к работе в команде и невнимательности некоторых её членов :)


 
Ega23 (home)   (2007-03-07 08:12) [11]


> Skyle ©   (07.03.07 06:47) [10]


Ты знал, ты знал...   :)


 
boa_kaa ©   (2007-03-07 08:56) [12]


> McSimm_   (06.03.07 15:05) [7]
>
> Не получилось представить себе логику, при которой инициализация
> переменной цикла срабатывала бы при каждом проходе. Хоть
> Паскаль, хоть Си.

удаление повторов, например


 
Германн ©   (2007-03-07 12:58) [13]


> Skyle ©   (07.03.07 06:47) [10]

Я имел в виду уже обсуждавшуюся тут тему насчет использования в качестве переменной цикла беззнакового целого :)


 
_Слоник   (2007-03-07 17:24) [14]


> удаление повторов, например

а не проще пройтись с конца и удалять элемент с текущим индеском?


 
McSimm_   (2007-03-07 18:26) [15]


> удаление повторов, например

не представляю, все равно.

Наверное вы не поняли, не условие выхода из цикла, а инициализация переменной цикла на каждой итерации.
for I := A to B do
for (i = A; i <= B; i++)



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

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

Наверх




Память: 0.5 MB
Время: 0.04 c
9-1146889751
Лёха
2006-05-06 08:29
2007.04.01
helpppp!!!


2-1173264291
Nipel
2007-03-07 13:44
2007.04.01
позиция мыши в memo


6-1161170836
wolchonok29
2006-10-18 15:27
2007.04.01
Передача группы файлов по сети


15-1173086533
MsGuns
2007-03-05 12:22
2007.04.01
Украинский футбол глазами европейцев


1-1170835673
Krants
2007-02-07 11:07
2007.04.01
TTreeView, убрать выделение