Access violation на Application.Terminate

1 отговора 0 прегледа
#1

Access violation на Application.Terminate

Имам приложение на Делфи 6/Firebird 1.5/WINXP-SP2
Проблема, който имам от известно време е че при изход от програмата(правя го с Application.Terminate) ми дава "Access violation at address 74E50CC2
Правя следното: само влизам в програмата и давам изход - тоест не влизам в други форми освен в мейн. Експешъна обаче не ми го дава всеки път, а веднъж на 4-5 влизания, като във всички случаи правя едно и също. Каква е логиката?
И второ - при трасиране гърми на terminate като влиза в процедурата TWinControl.DefaultHandler на реда if Msg = RM_GetObjectInstance - това обаче не ми говори много. Как мога да намеря контрола или формата, която не може да дестройне, защото е ясно че при terminate дестройва формите и гърми понеже се опитва да дестройне нещо, което не е там(на адреса в паметта).

Редактирано от true на

Отговор
в отговор на true #2

Re: Access violation на Application.Terminate

> защото е ясно че при terminate дестройва формите и гърми понеже се опитва да дестройне нещо, което не е там(на адреса в паметта).

Това е проблем с паметта. Виж си всички компоненти, особено тези от трети производители - как се създават, как се унищожават и какво имаш в твоя си код, напр. някое събитие създава динамично компонент, присвоява го на някой друг и го унищожава, а после и другия опитва да го унищожи.

Mixy
Отговор