gpt4 book ai didi

delphi - 我如何在 Delphi 中显示退出时的最终形式?

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

这对某人来说应该很简单。我只是不知道该怎么做。

退出我的程序后,我想隐藏主窗体并使最终的“谢谢”窗体单独出现,如下所示:

procedure TMainForm.ExitExecute(Sender: TObject);
begin
MainForm.Visible := false;
ThankYouForm.Show;
MainForm.Close;
end;

但是当我这样做时,我得到了异常:

EInvalid Operation: Cannot change Visible in OnShow or OnHide

那么在 Delphi 中如何显示最终窗体,同时在退出程序时隐藏主窗体?


结论:Mghie 确认我的尝试是正确的并且应该有效。这表明我在退出和关闭表单的过程中某处有一个错误,它引发了这个异常。

现在我知道了,我很快就会找到并解决问题。


发现问题:我正在从 ThankYouForm 中关闭我的主窗体,然后它以某种方式循环回到 ExitExecute 并且,好吧,它全部陷入困境。

但一切又都好了。 ThankYouForm.ShowModal 之前的 MainForm.Hide 完美运行。

再次感谢大家。

最佳答案

与其试图将某些东西硬塞进主窗体,不如转到您知道其他一切都已完成运行的地方:Application.Run 返回的地方。创建一个新过程来创建、显示和销毁您的告别表单,然后在您的 DPR 文件中调用它,如下所示:

begin
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
TThankYouForm.Execute;
end.

显示函数可以按照what Mghie's answer demonstrated的思路:

class procedure TThankYouForm.Execute;
begin
with Create(nil) do try
ShowModal;
finally
Free;
end;
end;

关于delphi - 我如何在 Delphi 中显示退出时的最终形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1753893/

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