Текущий архив: 2007.12.09;
Скачать: CL | DM;
Вниз
Проект вылетает Найти похожие ветки
← →
homm © (2007-11-12 17:28) [40]> да нет конечно
велик и могучь русский язык, фраза состояшая из одного утверждения, одного отрицания и одного уверенного утверждения означает… отрицание %)
← →
@!!ex © (2007-11-12 17:43) [41]ЖЕСТЬ.
У меня куча контейнеров...
ВЕЗДЕ while...
типа такого:procedure TBillboards.Update(dt: integer);
var
Index:integer;
begin
Index:=0;
while Index<Count do begin
Items[Index].Update(dt);
if Items[Index].Life<=0 then begin
Items[Index].Free;
Items[Index]:=Items[Count-1];
dec(Count);
end
else
inc(Index);
end;
end;
ЗДЕСЬ for.... Я не понимаю как он сюда попал, но факт остается фактом он здесь был...
и вот в случае, когда нужно уничтожить некоторый элемент + последний элемент, вызывает невалидность.. банально. удаляется элемент, на его место кладется последний.. КОТОРОЫЙ ТОЖЕ НЕ ВАЛИДНЫЙ... и счетчик инкреметируется...
Rouse_, спасибо. в посте [34] сказал нужную вещь.... благодаря выводу добавления/удаления элементов и увидел это...
← →
Черный Шаман (2007-11-12 18:52) [42]
> homm © (12.11.07 17:17) [35]
>
> > [33] @!!ex © (12.11.07 17:13)
> > У меня везде while.. И только здесь for... из-за этого
> может
> > падать?
>
> да
Плохой стиль использовать обращение к общим переменным(классам) без критических секций.
← →
Anatoly Podgoretsky © (2007-11-12 18:53) [43]> @!!ex (12.11.2007 16:49:28) [28]
И ничего, а претензия почему тогда была?
← →
@!!ex © (2007-11-12 19:07) [44]> [42] Черный Шаман (12.11.07 18:52)
А как надо? Пример можно?
> [43] Anatoly Podgoretsky © (12.11.07 18:53)
Не понимаю, причем тут WinAPI.
Страницы: 1 2 вся ветка
Текущий архив: 2007.12.09;
Скачать: CL | DM;
Память: 0.54 MB
Время: 0.021 c