我有最花哨的时间试图弄清楚为什么我的模态表单不会关闭!
使用 Delphi XE-5 和 FireMonkey Mobile App (Android),我按照信息“ShowModal Dialogs in FireMonkey Mobile Apps

出于演示目的,我创建了一个新的 Firemonkey Mobile delphi 应用程序并添加了一个辅助 firemonkey 移动表单。在主窗体中,我使用文章中的代码:

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;

在辅助表单上,我分别将“确定”和“取消”按钮的 modalresult 属性分配给“mrCancel”和“mrOK”。但是,当显示模式对话框时,两个按钮都不会关闭对话框。我什至尝试添加 onClick 事件并通过代码分配 modalresult 。为什么表格不会关闭?我想我需要保证我做的一切都是正确的,可能是我的电话(设备)?

最佳答案

要关闭模态对话框,请使用以下模式:

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

并删除您的调用 Form2.DisposeOf; ,因为 ModalResult setter 需要对有效对象进行操作。

文档已在 XE7 中更新,请参阅 Using FireMonkey Modal Dialog Boxes

有关 DisposeOf 错误的详细信息,另请参阅 ShowModal on Android

关于android - 在 delphi firemonkey 移动应用程序 (Android) 中关闭模态对话框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22230072/

10-12 04:42