Форум: "Система";
Текущий архив: 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.46 MB
Время: 0.005 c