我有最花哨的时间试图弄清楚为什么我的模态表单不会关闭!
使用 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/