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

Вниз

Вылетает ошибка при выходе из программы!!! Причина - Data Module.   Найти похожие ветки 

 
Rafe   (2004-01-24 21:05) [0]

Всем привет!
При выходе из программы выскакивает ошибка - EAccessViolation в модуле таком-то по адрессу такому-то.

Она возникает всегда (и в дизайн тайм и просто) даже если просто программу загрузить и сразу же выйти.

Причина в одной из Data Module.
Ошибка исчеазет если из проекта исключить создание одного из Data Module, т. е. если закомментировать в *.dpr строчку - Application.CreateForm(TDMRef, DMRef);

DMRef - это обычный Data Module на котором набросаны несколько ADOQuery, ADOStoredProc и DataSource. В данном модуле нет ни одной обработки событий. При загрузке программы ни один из компонентов не связывается с БД.

Подскажите как избавится от ошибки?


 
Крутыш ©   (2004-01-24 22:36) [1]

Зачем тебе создавать несколько одних и тех же
datamodule. Если он тебе нужен в единственном экземпляре
пусть он создаётся при запуске приложения сам.


 
Johnmen ©   (2004-01-24 22:47) [2]

Скорее всего данный модуль создается динамически...
А два раза создавать одно и то же (в дпр и ещё где-то) странновато, ты не находишь ?


 
Rafe   (2004-01-25 00:43) [3]

To Крутыш © и Johnmen ©

Вот он (data module) и создается сам при запуске программы.
Я динамически в программе никакого data module не создаю.
Дело в том, что я искал причину возникновения ошибки и выявилась такая закономерность, что если этот data module вообще не создавать, то ошибки не возникает.
Т. е. если я захожу в файл проекта (*.dpr) и комментирую эту строку (которую дельфя автоматом вписала) - то программа при завершении работы не выдает ошибки.

Но мне то нужен этот data module, без него мне никак.


 
Johnmen ©   (2004-01-25 00:55) [4]

>Rafe

"И всё-таки она вертится !" (c) Галилей

Единственное разумное предположение на основе имеющихся исходных данных - см. что сказано выше...
Если есть желание дальше исследовать проблему, то приводи более конкретные данные.


 
Rafe   (2004-01-25 01:15) [5]

To Johnmen ©

Проблема решилась.
Она (ошибка) перестала возникать.
Просто я поменял очередность создания в списке форм в dpr-е.
Если ее поставить последней по очереди создания ближе к концу списка - то ошибка вылетает, если ближе к началу - то нет.
Форм окло 40 шт. и DM около 10.

Application.Initialize;
Application.CreateForm(TMain_Form, Main_Form);
Application.CreateForm(TDMRef, DMRef);
Application.CreateForm(TUser_Form, User_Form);
...
...
...
...
Application.Run;

Самое интересное, что у меня на событие Create форм только у нескольких стоят обработчики да и то он не имеют никакого отношения к этому Data Module.


 
Johnmen ©   (2004-01-25 01:33) [6]

>Rafe

:^)))

Прошу прощения, но это известная ошибка начинающих...

Чтобы не ломать себе мОзги, всегда сначала создаётся DM.
>...не имеют никакого отношения к этому Data Module.
Верится с трудом...Тьфу...Совсем не верится...:)



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

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

Наверх




Память: 0.48 MB
Время: 0.031 c
1-38803
Eli
2004-02-02 13:27
2004.02.13
ClipBoard.AsText - ????? вместо букв


14-39041
Goida
2004-01-25 00:10
2004.02.13
Работа с электронной почтой


14-39009
NewD
2004-01-27 07:04
2004.02.13
Подскажите пож-та ссылrи на статьи про Tlistview .


6-38982
Ig
2003-12-10 21:40
2004.02.13
Про Интернет : найти/подключить/отключить


3-38673
Vitalik
2004-01-24 16:38
2004.02.13
даты в БД