Главная страница
    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.006 c
14-9970
SleD
2002-06-02 14:41
2002.07.04
Вопрос к участникам Spedia


3-9718
Explorer
2002-06-10 14:35
2002.07.04
Рубли без копеек


3-9742
BJValentine
2002-06-12 12:31
2002.07.04
MS Sql


1-9778
DeepProg
2002-06-17 19:15
2002.07.04
Переменные в именах


1-9874
Pat
2002-06-21 22:02
2002.07.04
Maxtor 2B020H1





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