【发布时间】:2010-04-20 06:46:58
【问题描述】:
当表单 A 是模态的并且它显示第二个模态表单 B,并且设置 B 的模态结果并且 B 然后关闭时,A 也被关闭。
如何预防?
【问题讨论】:
标签: delphi forms modal-dialog
当表单 A 是模态的并且它显示第二个模态表单 B,并且设置 B 的模态结果并且 B 然后关闭时,A 也被关闭。
如何预防?
【问题讨论】:
标签: delphi forms modal-dialog
这不是真的,您的代码中肯定存在其他问题。设置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 并重新启用父表单。要退出应用程序,您需要以相反的创建顺序逐个关闭所有表单。
【讨论】: