2010-04-20 94 views

回答

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并重新启用父表格。要退出应用程序,您需要按照与创建相反的顺序逐个关闭所有表单。

+0

正确,经过一些搜索和测试后,我发现 - 等待它 - “莫名其妙......”按钮有一个ModalResult mrNo,在第二个对话框关闭后,正确的事情是由窗体类完成的并关闭对话框。 – MX4399 2010-05-12 12:20:11