Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2003.05.12;
Скачать: [xml.tar.bz2];

Вниз

программа расшибается при попытке закрытия   Найти похожие ветки 

 
zetta   (2002-08-02 10:59) [0]

проблема такая: запускаю процесс T2 (TThread) и он спокойненько себе выполняется, обновляя в форме w progressbar. Когда я нажимаю на крестик закрытия программы и отвечаю "No", программа падает на пузо и система выдает всем нам знакомое окошко с красным крестиком и кнопками "Close" и "Details..." "This program has performed an illegal operation and will be shut down. If the problem persists, contact the program vendor". Нажимаю на "Details...", а там пишут: invalid page fault in kernel32.dll.
При нажатии в моей программе на "Yes" все происходит хорошо: процесс закрывается, окно закрывается и программа закрывается без проблем. Вот процедура xit, которая привязана к w.Onclose:

procedure xit( Sender: PObj; var Accept: Boolean );
begin
accept:=msgbox("Terminate program?",MB_YESNO)=ID_YES;
if accept then begin t2.terminate;w.Close;halt; end else w.Update;
end;

Как вылечить?


 
Vladimir Kladov   (2002-08-03 14:38) [1]

xit или TMyObject.xit ? Это существенно.
Terminate будет убивать процесс без попытки подождать его легального завершения. Halt performs an abnormal termination of a program and returns to the operating system. Может, w.Close достаточно?


 
zetta   (2002-08-05 16:17) [2]

просто xit. привязывается так: w.OnClose:=TOnEventAccept(makemethod(nil,@xit));
отказ от halt не помог.


 
zetta   (2002-08-05 16:20) [3]

нужно именно экстренное прерывание процесса.



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

Форум: "KOL";
Текущий архив: 2003.05.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.44 MB
Время: 0.006 c
3-34349
I.Ru.Ru
2003-04-22 08:35
2003.05.12
Какой формат СУБД лучше?Paradox?


1-34439
ksushishka
2003-04-25 18:54
2003.05.12
Работа с документами Excel


3-34357
jocko
2003-04-21 15:55
2003.05.12
Фильтрация ADODateSet


14-34571
default
2003-04-22 15:15
2003.05.12
Численные методы


1-34399
NAlexey
2003-04-30 11:00
2003.05.12
DateTimeToStr - Integer Overflow





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский