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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.035 c
2-1173121982
Roman_S
2007-03-05 22:13
2007.04.01
Как проверить: "если Copy(SearchRP.Name, i, 1)=цифра, тогда ..."


15-1173172002
ocean
2007-03-06 12:06
2007.04.01
Ретушь


6-1160908176
root
2006-10-15 14:29
2007.04.01
как передать данные


4-1163412977
--= Eagle =--
2006-11-13 13:16
2007.04.01
Как получить информацию S.M.A.R.T. диска?


1-1170938140
linox
2007-02-08 15:35
2007.04.01
Форма и панель задач





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