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

Вниз

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 10 do begin
         if i=2 then
   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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.045 c
2-1147448103
kester
2006-05-12 19:35
2006.05.28
Двумерный массив в константе


2-1147245971
KyRo
2006-05-10 11:26
2006.05.28
Вопрос по сервисам и реестру


2-1147131064
noviy
2006-05-09 03:31
2006.05.28
что предпочтителней использовать?


2-1147240632
D@Nger
2006-05-10 09:57
2006.05.28
RxLib


2-1147251717
KyRo
2006-05-10 13:01
2006.05.28
От чего возникает ошибка