gpt4 book ai didi

forms - Delphi-辅助表单的OnClose处理程序未调用

转载 作者:行者123 更新时间:2023-12-03 19:08:01 25 4
gpt4 key购买 nike

我有一个主表格和另一个“辅助”表格。如果我先关闭辅助服务器,则会调用其OnClose处理程序。不幸的是,如果我先关闭主窗体,则应用程序终止,并且不调用辅助窗体的OnClose。这是一个问题,因为我想在关闭每个表单之前保存它们的位置和大小。我该如何解决?

最佳答案

处理该问题的一个整洁的地方是主表单的OnCloseQuery事件。

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var i : integer;
begin
CanClose := true;
if Application.MainForm = self then begin
CanClose := MessageDlg('Close the application?', mtConfirmation,
[mbYes, mbNo], 0) = mrYes;
if CanClose then
for i := 0 to Screen.FormCount - 1 do
if Screen.Forms[i] <> self then Screen.Forms[i].Close;
end;
end;


上面建议的第一项检查仅在使用多个主窗体实例的情况下才有用。为防止再次输入,必须对 self进行第二次检查。

关于forms - Delphi-辅助表单的OnClose处理程序未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21264105/

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