这个问题在这里已经讨论过,但没有这么详细。
当我试图关闭一个非模态子窗体时,我遇到了麻烦。我让它通知父窗体,但是我得到了抽象错误和其他异常。我做错了什么?父窗体必须释放非模态窗体,还是永远不再尝试通过该变量访问它?
主窗体:
NonModal := NonModalTForm.Create(Self);
NonModal.Callback := Callback;
NonModal.Show;
Procedure TForm.Callback; // called by non-modal form when closing
begin
FreeAndNil(NonModal); // or should this just be NonModal := nil so I don't try to access a dangling pointer?
end;
在NonModal.pas文件中
procedure NonModalTForm.FormClose;
begin
Callback; // calls parent
end;