Форум: "Основная";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];
ВнизAccess vialation IDE при завершении виполнения разрабатываемой Найти похожие ветки
← →
JJ © (2006-04-14 12:53) [0]Здравствуйте! На D6 часто возникает проблемма Access violation.
Например, для пустой формы пишу в OnCreate:procedure
Form1.FormCreate(Sender: TObject);var
i: integer;begin
for
i:=0 to 10do begin
if
i=2then
end
;
ShowMessage(IntToStr(i));end
;
Запускаю из IDE программу, она отрабатывает, закрываю ее и возникает Access violation... IDE висит с запущенной сессией Debug`а. CTRL+F2 ничего не дает. После появляется ошибка "Internal COM Error - 631". Из этого состояния можно выйти только перезапуском IDE.
Как избавиться от этого глюка? Если патч?
← →
Desdechado © (2006-04-14 13:11) [1]1. приведенный код даже не скомпилируется
2. ошибка "...COM..." говорит о подключенных компонентах, а не пустой форме
← →
JJ © (2006-04-14 14:07) [2]Почему не скомпилируется? Очень даже компилируется и запускается. Подключены только стандартные модули, которые ставятся по умолчанию для нового проекта. Тоесть делал так: File->New Application. На новой форме двойным щелчком перехожу в OnCreate, набираю приведенный код, запускаю получившееся приложение, на окне сообщения кликаю Ок, закрываю приложение и получаю ошибку Access violation.
← →
balepa © (2006-04-14 14:30) [3]
> JJ © (14.04.06 12:53)
> Как избавиться от этого глюка? Если патч?
Delphi 7 :)
> Desdechado © (14.04.06 13:11) [1]
> 2. ошибка "...COM..." говорит о подключенных компонентах, а не пустой
> форме
Может это ошибка в IDE
← →
TYB (2006-04-14 14:48) [4]А если так
procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
begin
for i:=0 to 10 do begin
if i=2 then
ShowMessage(IntToStr(i));
end;
end;
← →
balepa © (2006-04-14 14:56) [5]
> TYB (14.04.06 14:48) [4]
Код JJ © (14.04.06 12:53) тоже работает если он хочет что бы ему вывелось 11 хотя у тебя правильнее будет, но об этом судить автору ветки
> JJ ©
Смотри Warning
FOR-Loop variable "i" may be undefined after loop
← →
JJ © (2006-04-14 15:19) [6]Такой код получился случайно :) и выводить он должен 11. Если поставить:
if i=2 then break
то такой ошибки не возникает.
Но тем не менее, такой глюк переодически появляется в разных проектах и портит жизнь. Бывали ситуации, когда ставишь точку останова, F9 до точки останова и F9 после - все нормально, а если не ставить, появляется эта ошибка.
← →
Desdechado © (2006-04-14 16:00) [7]> выводить он должен 11
Не должен и не будет. Ибо после завершения цикла переменная хранит неопределенное значение (последнее достигнутое, граничное, заграничное), причем неопределенность усугубляется тем, что при разных опциях компилятора и разных его версиях оно разное.
← →
JJ © (2006-04-14 17:00) [8]А такое явление типичное, или только у меня этот глюк? Может дистрибутив такой?
← →
Desdechado © (2006-04-14 18:38) [9]это явление типичное, если неправильно оперировать с памятью, не зная основ
← →
JJ © (2006-04-14 18:43) [10]А в том куске какие проблемы?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c