我正在寻找最简单的时间来弄清楚为什么我的模态形式不会关闭! 使用Delphi XE-5和FireMonkey移动应用程序(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;
在辅助表单上,我将“Ok”和“Cancel”按钮modalresult属性分别分配给“mrCancel”和“mrOK”。但是,当显示模态对话框时,两个按钮都不会使对话框关闭。我甚至尝试添加onClick事件并通过代码分配modalresult。为什么表格不接近?我想我需要保证我能够正确地使用我的电话(设备)吗?
答案 0 :(得分: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
错误的详细信息。