Ошибка при закрытии программы
вот... в чем проблема я понять не могу... ничего "страшного" я перед выходом не делаю...
просто устанавливаю private свойства класса TMainForm в значения по умолчанию, и вызываю функцию Logout на сервере, чтобы пристрелил сессию....
функция Logout завершается; блок try ... catch (...) никаких Exception'ов не выдаёт... в общем, когда уже окно исчезло, тогда вываливается вот этот message
magic какой-то...:confused:
вот... в чем проблема я понять не могу... ничего "страшного" я перед выходом не делаю...
просто устанавливаю private свойства класса TMainForm в значения по умолчанию, и вызываю функцию Logout на сервере, чтобы пристрелил сессию....
функция Logout завершается; блок try ... catch (...) никаких Exception'ов не выдаёт... в общем, когда уже окно исчезло, тогда вываливается вот этот message
magic какой-то...:confused:
У тебя в проэкте одна форма, или несколько?
PS: под 2k вот такая вот ошибка. а под XP ошибки нет.....
Попробуй написать в событиях каждой формы вот такое: (FormClose)
Release();
Form1 = NULL;
А ты их вот так создавай
if(!Form1){
Application->CreateForm(__classid(TForm1), &Form1);
}
Form1->Show(); Или СшовМодал
И зачем извраты с Release()?
Или это как в известном анекдоте:
"- Рабе таки все куры сдохли...
- Жаль а у меня еще столько идей было" :)
Тень Пса
Установи точку останова и пройдись отладчиком перед моментом закрытия формы. Ты увидишь куда собственно передается управление и сможешь найти ошибку.
Попробуй написать в событиях каждой формы вот такое: (FormClose)
Release();
Form1 = NULL;
Release(); - писать не вздумай. Как создаются формы - динамически? И что передаешь в конструтор (Owner - кто)?
PS: Release писать не стал ))) ибо динамически их потом создавать ))) не хоца ) :rolleyes:
не могу словить её... главно: из IDE запускаю, хоть релиз, хоть дебаг... НЭТ АШЫПКО!... а вот EXE-шник, скомпилённый и лежащий рядом.... ЕСТЬ АШЫПКО!
мэджик........ :eek:
а может ли компонент NMHTTP такую пакость делать?
PS: ну вот совсем ничего не делаю при закрытии....
if (http->Connected()) {
http->Disconnect();
}
http->Free();
...
а при зыкрытии всё равно вылетает эта мессага....
самое странное то, что вылетает тока под 2хтоннкой... (win2k) и только когда запускаю уже скомпилённый exe-шник... а из IDE или просто exe-шник в XP - всё гут! :(
PS: не делаю никогда http->Connect(); делаю только http->Get(); (насколько знаю сам делает коннект и после возвращения рузельтата дисконнект)...
инициализирую компонент перед Get() методом так
http->InputFileMode = false;
http->OutputFileMode = false;
http->ReportLevel = Status_Basic;
http->HeaderInfo->Cookie = "";
http->HeaderInfo->LocalMailAddress = "";
http->HeaderInfo->LocalProgram = "";
http->HeaderInfo->Referer = "";
http->HeaderInfo->UserId = "";
http->HeaderInfo->Password = "";
// далее просто http->Get(url);
вот...
Правильнее писать delete http.
Кстати, а что это за объект? Если имя компонента, положенного на форму, то удалять его не нужно - его удалит сама форма.
не могу словить её... главно: из IDE запускаю, хоть релиз, хоть дебаг... НЭТ АШЫПКО!... а вот EXE-шник, скомпилённый и лежащий рядом.... ЕСТЬ АШЫПКО!
мэджик........ :eek:
а может ли компонент NMHTTP такую пакость делать?
PS: ну вот совсем ничего не делаю при закрытии....
Необходимо вначале выполнять дисконнект, обрабатывать его а только потом закрывать форму. Удалять компонент ненужно. Если он конечно не создается динамически.
Destroys an object and frees its associated memory, if necessary.
__fastcall Free();
Description
Do not call the Free method of an object. Instead, use the delete keyword, which invokes Free to destroy an object. Free automatically calls the destructor if the object reference is not NULL.
То есть, англицким языком говорят, не вызывать этот метод :D.
2 _kot: дисконнект выполняем, везде где можно ) на дисконнекте стоит опять же try ... catch (...) никаких exception'ов не валится....
во как....:(
капееееееееееееец, вот если его на OnCloseQuery() не пристрелить delet'ом.... то тогда ошибка есть... а если пристрелить. то ошибка пропадает :D
простите за беспокойство, но думалось просто НУ НИКАК НЕ НА ГИФАНИМАТОР!........................... =)))))))))))))))))))))))))))))
[COLOR=DarkRed]ВСЕМ СПАСИБО!!![/COLOR] Благодарю за Ваши ответы и оказанную помощь!!!!!!! :rolleyes:
PS: не буду больше пользовать этот компонент :-D
Ок. Тему закрываю.