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

Вниз

Отчего Exception?   Найти похожие ветки 

 
georgius ©   (2006-06-20 17:08) [0]

Регулярно после закрытия приложения вылетает EAccessViolation.
Не каждый раз, а только если в ходе сеанса открывал одну форму.
Странно, форма, как форма, открываю просто - создал-показал-удалил.
В момент удаления формы - все благополучно, а Exception появляется только при закрытии приложения.


 
Плохиш ©   (2006-06-20 17:14) [1]

Ошибка в 17й строке


 
Ega23 ©   (2006-06-20 17:20) [2]

Как создаёшь, как удаляешь?


 
Германн ©   (2006-06-20 17:44) [3]

Какие компоненты на этой форме?


 
Cashmare ©   (2006-06-20 17:48) [4]

При выходе из программы пытаешься закрыть уже закрытое?


 
Kotyara   (2006-06-20 18:33) [5]

У меня такое было, когда в MDI приложении на child форме расположен "косой десяток" компонентов, сбрасывающих свое состояние на диск во время закрытия. Если закрыть такое приложение с открытым дочерним окном, выскакавало исключение. Походе, главная форма успевала "прикрыть" дочернюю форму раньше, чем она нормально закрывалась. Переместил код закрытия дочерней формы из OnClose в OnCloseQuery - ошибка пропала.


 
Ega23 ©   (2006-06-20 18:44) [6]

AV означает, что ты обращаешься к ещё не созданному объекту или уже убитому.
Самый интересный вариант, когда объект "наполовину" создан...  :о) Или убит.


 
Плохиш ©   (2006-06-20 18:47) [7]


> Ega23 ©   (20.06.06 18:44) [6]

На чём гадаешь? На кофейной гуще или на пивной пене? ;-)


 
georgius ©   (2006-06-20 19:01) [8]

Похоже, проблема не в окошке. На главном окне мильён компонентов (из нескольких Frame-ов), куча графики и т.п.
Ошибка возникает в коде TComponent.RemoveNotification - видимо где-то что-то не вовремя освобождается. Обидно, что код не мой, это все системные вызовы.


 
Плохиш ©   (2006-06-20 19:10) [9]


> Обидно, что код не мой, это все системные вызовы.

Ну да, опять Билл Геитс виноват? Поищи бревно в глазу своём, то бишь коде. Все эти ошибки являются следствием твоих ошибок в программе.

> На главном окне мильён компонентов (из нескольких Frame-
> ов), куча графики и т.п.

Вот тут-то ты и пытаешься что-то использовать после уничтожения.


 
Ega23 ©   (2006-06-20 19:11) [10]

Рекомендую обратить внимание на SetParent у фреймов.


 
georgius ©   (2006-06-20 19:15) [11]

2 Ega23: точно, наелся я в свое время с этими Parent-ами.
Но в этом случае, похоже, мне подложил собаку SplashWindow из RX. Закомментарил все вызовы - работает без сбоев. Только Splash все-равно какой-то нужен, а то процессы переключения режимов могут занимать 2-3 секунды при большой базе.


 
georgius ©   (2006-06-20 20:42) [12]

Камрады, спасибо за советы, меня подвело сочетание SplashWindow и LockWindowUpdate. Может подскажете что-нибудь дельное, как на время обширных изменений в окне: 1) заморозить изображение, чтобы ничего не мерцало и 2) показать какое-нибудь окошко, типа "ждите".


 
Cashmare ©   (2006-06-21 00:28) [13]

georgius ©   (20.06.06 20:42) [12]
1) заморозить изображение, чтобы ничего не мерцало


DoubleBuffered или BeginUpdate...EndUpdate. Окно - понятие растяжимое, смотря какое у тебя окно.


 
georgius ©   (2006-06-21 14:53) [14]

2 Cashmare:
Ты все правильно говоришь, для деревьев использую Begin/EndUpdate, для grids - Enable/DisableControls. DoubleBuffered включаю у всего, что только можно, даже с WM_SETREDRAW поигрался, и все-равно только LockWindowUpdate по-настоящему убирает все мерцание.
А окношо - большое, отображается штук 8-мь таблиц в DBgrid и DBTree, так что мерцание обязательно нужно лечить. Минус у применения LockWindowUpdate в том. что он не сочетается со  SplashWindow из RX



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

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

Наверх




Память: 0.5 MB
Время: 0.056 c
11-1130847996
юра
2005-11-01 15:26
2006.07.30
как работать с ini файлами?


2-1152262440
Diksa
2006-07-07 12:54
2006.07.30
TreeView


1-1150640609
PRT
2006-06-18 18:23
2006.07.30
Проблема с UpperCase и InputBox


1-1150347714
Mva
2006-06-15 09:01
2006.07.30
Печать PCL


1-1150714357
SamProf
2006-06-19 14:52
2006.07.30
Копирование методами Windows с ftp