我正在使用Marco Cantu's ShowModal example用于Android应用程序。你如何处理mrCancel
这是我的代码:
procedure TForm1.Button1Click(Sender: TObject);
var
Form2: TForm2;
begin
Form2 := TForm2.Create(nil);
Form2.ShowModal(
procedure(ModalResult: TModalResult)
begin
if ModalResult = mrOK then
begin
ShowMessage('OK');
Form2.DisposeOf;
end
{ else
begin
ShowMessage('Cancel');
Form2.DisposeOf;
end;}
end);
end;
我如何处理mrCancel?如果我有一个带控件的表单,用户必须输入数据,我想给他们选择取消表单并返回主表单。
我应该注意到我为mrCancel分配了取消按钮的modalresult,就像我在辅助表单上为OK按钮做了mrOK一样。确定按钮工作正常,但如果我点击取消按钮,该应用程序什么也不做,所以我不能再点击确定按钮。
我原以为我可以做到以下
var
Form2: TForm2;
begin
Form2 := TForm2.Create(nil);
Form2.ShowModal(
procedure(ModalResult: TModalResult)
begin
if ModalResult = mrOK then
begin
ShowMessage('OK');
Form2.DisposeOf;
end
end);
end;
我应该能够将mrCancel分配给取消按钮的modalresult属性 - 但它不起作用
答案 0 :(得分:3)
无论DisposeOf()
是什么,都必须致电ModalResult
。您目前只在结果为mrOk
时才调用它。这样做:
procedure TForm1.Button1Click(Sender: TObject);
var
Form2: TForm2;
begin
Form2 := TForm2.Create(nil);
Form2.ShowModal(
procedure(ModalResult: TModalResult)
begin
if ModalResult = mrOK then
ShowMessage('OK')
else
ShowMessage('Cancel');
Form2.DisposeOf;
end
);
end;