Delphi 嵌套模式窗体中的顶部模式窗体关闭是否关闭所有其他模式窗体?
当表格A为模态且显示第二模态表格B时,设置B的模态结果,然后B关闭,A也关闭Delphi 嵌套模式窗体中的顶部模式窗体关闭是否关闭所有其他模式窗体?,delphi,forms,modal-dialog,Delphi,Forms,Modal Dialog,当表格A为模态且显示第二模态表格B时,设置B的模态结果,然后B关闭,A也关闭 如何防止这种情况发生?这不是真的,您的代码中肯定存在其他问题。设置ModalResult将只影响当前的模态形式。试试这个非常简单的例子: 创建一个新表单 在上面放一个按钮 在按钮OnClick事件处理程序中添加以下代码: procedure TForm1.Button1Click(Sender: TObject); begin with TForm1.Create(Self) do begin if Sh
如何防止这种情况发生?这不是真的,您的代码中肯定存在其他问题。设置
ModalResult
将只影响当前的模态形式。试试这个非常简单的例子:
- 创建一个新表单
- 在上面放一个按钮
- 在按钮
事件处理程序中添加以下代码:OnClick
procedure TForm1.Button1Click(Sender: TObject); begin with TForm1.Create(Self) do begin if ShowModal = mrCancel then Self.Color := RGB(Random(256), Random(256), Random(256)); end; end;
您将观察到,每次按下按钮都会创建一个新的模态形式,您可以根据自己的意愿重复此操作。关闭表单会将其
ModalResult
设置为mrCancel
并重新启用父表单。要退出应用程序,您需要按照与创建相反的顺序逐个关闭所有表单。正确,经过一些搜索和测试,我发现-等待它-“不知何故……”按钮的ModalResult为mrNo,在第二个对话框关闭后,表单类完成了正确的操作,对话框关闭。