gpt4 book ai didi

delphi - Delphi中MainForm的OnShow事件中的ExitProcess

转载 作者:行者123 更新时间:2023-12-03 14:46:34 25 4
gpt4 key购买 nike

我有一个应用程序,它在启动时检查一些条件并在主窗体的 OnShow 事件中启动外部程序。问题是,如果启动外部程序时出现错误,我希望应用程序立即终止。但这有一个问题,因为 EurekaLog 捕获了我的异常,并以某种方式通过否定对 Application.Teminate 和任何其他正常关闭方法的所有调用来中断消息循环。

所以这是我的问题,当这种情况存在时,ExitProcess 是否是立即终止我的应用程序的最佳途径?

最佳答案

OnShow 触发时,您已经深入了解了程序,无法决定是否真的希望程序运行。你应该早点做出这个决定。 OnShow 不是决定表单不应显示的地方。

这是您在创建主表单之前应该检查的事情。将检查放入 DPR 文件中,如果您确定该程序不应运行,则只需调用 exit

begin
Application.Initialize;
if not ApplicationShouldReallyStart then
exit;
Application.CreateForm(TMainAppForm, MainAppForm);
Application.Run;
end.

填写您自己的 ApplicationShouldReallyStart 实现。 (它确实应该是一个单独的函数,而不是内嵌在 DPR 文件中。如果 DPR 文件中的 begin-end block 变得过于复杂,IDE 会感到困惑.)

除此之外,不要调用ExitProcess。请改为调用 HaltHalt 调用 ExitProcess,但它也调用单元终结部分和其他特定于 Delphi 的进程关闭任务。

关于delphi - Delphi中MainForm的OnShow事件中的ExitProcess,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/912280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com