gpt4 book ai didi

Delphi - 在主窗体创建上停止应用程序

转载 作者:行者123 更新时间:2023-12-03 15:03:31 27 4
gpt4 key购买 nike

情况如下:在应用程序主窗体上创建事件时,某些条件未得到满足,因此应用程序需要关闭。

是的,这是一个糟糕的设计,但是应用程序应该如何关闭?使用Application.MainForm.Close 生成一个AV。 Application.Terminate不是一个很好的选择。还有其他想法吗?

最佳答案

Application.Terminate 工作得很好。但是,请记住,这是一个延迟终止,它所做的只是将 WM_QUIT 消息发送到调用线程的消息队列,因此应用程序实际上不会终止,直到 Application.Run() 被调用以开始处理主线程的消息队列。因此,在应用程序实际终止之前,您可能会看到 MainForm 在屏幕上短暂闪烁。如果您想避免这种情况,可以将 Application.ShowMainForm 属性设置为 false,例如:

procedure TMainForm.FormCreate(Sender: TObject);
begin
if (some condition) then
begin
Application.ShowMainForm := False;
Application.Terminate;
end;
end;

但是,正如其他人所说,更好的设计是在项目的 DPR 文件中进行检查,甚至在必要时根本不创建 MainForm,例如:

Application.Initialize;
if not (some condition) then
begin
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end;

关于Delphi - 在主窗体创建上停止应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17945679/

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