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

Вниз

Код выхода из программы   Найти похожие ветки 

 
SerVS - S   (2002-04-05 16:43) [0]

Если кто знает подскажите как реализовать сабж. В с++ достаточно сделать в WinMain нечто вроде return 5, а что нужно сделать в Дельфи я не могу понять. Если кто знает, плиз помогите


 
Song   (2002-04-05 16:53) [1]


var ExitCode: Integer = 0;

Description

The ExitCode variable contains the application"s exit code. An exit procedure can learn the cause of termination by examining ExitCode. If the program terminates normally, ExitCode is zero. If the program terminates due to a call to Halt, ExitCode contains the value passed to Halt. If the program terminates due to a run-time error, ExitCode contains the error code.

Setting the ExitCode variable to a value other than 0 in the initialization section of a unit will make loading of a DLL fail (DllMain will return False). You can also set ExitCode in code called from DllProc or DllProcEx to signal failure of loading.


 
SerVS - S   (2002-04-05 17:20) [2]

Спасибо огромное. В момент запуска происходит очень много инициализаций, если произошла ошибка то нужно завершить приложение с соответствующим кодом (планируется в 95% случаев запускать его из другой проги). Делать halt нельзя, поэтому я использовал PostMessage. Song если в вас есть лучшие идеи подскажите, пожалуйста.


 
Song   (2002-04-05 17:44) [3]

Это что рассматривать как "момент запуска". Если Вы имеете ввиду до того, как выполнится Application.Run т.е. например onCreate форм, то PostMessage не получится т.к. фактически обработчик сообщений для Вашего приложения не работает, и программа закроется только после Run. В этом случае только Halt (только корректно выгрузите все возможно созданные объекты) или Application.Terminate. А если "момент запуска" это что-то наподобие onShow или onActivate то можно послать сообщение WM_CLOSE или WM_QUIT.
В принципе, я уверен, ничего нового я Вам не посоветовал. :))


 
SerVS - S   (2002-04-05 17:58) [4]

Правильно "момент запуска" это onCreate на главной форме. Если сделать halt то проложение его просто игнорирует и остается подвисщим в памяти (видимых форм нет). А если после WM_CLOSE с помощь PostMessage винда ставит его в очередь и, действительно, передает его приложению после Run. (Главное оно не остается висеть в памяти). Я не совсем уверен ExitCode после завершения по WM_QUIT будет ноль, или то что я туда установлю?


 
Song   (2002-04-05 18:30) [5]

А для этого нужно посмотретьисходники forms.
Я посмотрел. Долго объяснять. Но скажу сразу, что ExitCode из-за WM_QUIT не меняется. Для справки см. исходники TApplication.Run.


 
SerVS - S   (2002-04-05 19:14) [6]

Большое вам спасибо Song ©, за помощь. И за то что не поленились посмотреть ради меня исходники :-)


 
VuDZ   (2002-04-06 12:44) [7]

ExitProcess()



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

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

Наверх





Память: 0.45 MB
Время: 0.457 c
3-9713
oss
2002-06-06 14:47
2002.07.04
Midas, ADO, Dinamic Query


14-9998
Илья_____
2002-06-04 13:03
2002.07.04
RX & D6


3-9700
Sour
2002-06-10 17:23
2002.07.04
IBServer.


8-9930
Rurik
2002-02-27 15:27
2002.07.04
как хранить в ImageList каритинкиразных размеров ?


1-9887
Paromoshka
2002-06-21 15:48
2002.07.04
RichEdit (FindText)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский