К моменту запуска OnShow
вы слишком далеко зашли в программу, чтобы решить, что на самом деле не хотите, чтобы она запускалась. Вы должны сделать это определение раньше. OnShow
не место, чтобы решить, что форма не должна быть показана.
Это то, что вы должны проверить, прежде чем создавать основную форму. Поместите свои проверки в файл DPR, и если вы решите, что программа не должна запускаться, просто позвоните exit
.
begin
Application.Initialize;
if not ApplicationShouldReallyStart then
exit;
Application.CreateForm(TMainAppForm, MainAppForm);
Application.Run;
end.
Введите собственную реализацию ApplicationShouldReallyStart
. (И это действительно должна быть отдельная функция, а не встроенная в файл DPR. Среда IDE запутывается, если блок begin
- end
в файле DPR становится слишком сложным.)
Кроме этого, не звоните ExitProcess
. Позвоните Halt
вместо этого. Halt
вызывает ExitProcess
, но также вызывает разделы завершения модуля и другие специфичные для Delphi задачи завершения процесса.