当形式A是模态并且它显示第二个模态形式B,并且B的模态结果被设置而B然后关闭时,A也被关闭。
如何防止这种情况?
答案 0 :(得分:8)
事实并非如此,您的代码中还有其他一些问题。设置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
并重新启用父表单。要退出应用程序,您需要按照创建的相反顺序逐个关闭所有表单。