2010-04-20 102 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