2014-03-06 79 views
4

我正在嘗試弄清楚爲什麼我的模態窗體不會關閉! 爲了演示的目的,我使用了Delphi XE-5和FireMonkey移動應用程序(Android),之後我創建了一個新的Firemonkey Mobile delphi應用程序並添加了第二個firemonkey移動窗體。從主模中,我使用的代碼從物品:在delphi中關閉模態對話框firemonkey手機應用程序(Android)

procedure TForm1.Button1Click(Sender: TObject); 
var 
    Form2: TForm2; 
begin 
    Form2 := TForm2.Create(nil); 

    Form2.ShowModal(procedure(ModalResult: TModalResult) 
    begin 
     if ModalResult = mrOK then 
     begin 
     // 
     end; 
     Form2.DisposeOf; 
    end); 

end; 

在輔助形式,我分配「OK」和「取消」按鈕分別modalresult屬性爲「mrCancel」和「mrOK」。但是,當顯示模式對話框時,兩個按鈕都不會關閉對話框。我甚至嘗試添加onClick事件並通過代碼分配模態結果。爲什麼不把表格關閉?我想我需要保證,我做了正確的,可能的我的電話(設備)?

+0

該問題似乎沒有在發佈的代碼中。在別處看看。 –

+0

@KenWhite我已經閱讀過這篇文章,正如你所看到的,我的代碼來自它。在使用「確定」或「取消」按鈕的相關文章中,是否存在與實際關閉窗體相關的內容? – LuvRAD

+0

@MarcusAdams你會有什麼建議。我將編譯後的APK文件發送給我的兒子,他在Nexus設備上測試了它,它做了同樣的事情,所以它在代碼或運行時代碼中。 – LuvRAD

回答

5

爲了關閉模態對話框,使用此模式:

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); 
begin 
    Action := TCloseAction.caFree; 
end; 

,並刪除您的通話Form2.DisposeOf;,因爲ModalResult制定者需要在一個有效的對象進行操作。

該文檔已在XE7中更新,請參閱Using FireMonkey Modal Dialog Boxes

另請參閱ShowModal on Android爲什麼DisposeOf是錯的。

+0

使用Delphi 10.2東京和Android 6.0.1操作:= TCloseAction.caFree;'阻止表單關閉... – ArieKanarie

相關問題