0
我對Android應用程序使用Marco Cantu's ShowModal example。你是如何處理的mrCancelDelphi Android應用程序 - 使用ShowModal表格處理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?如果我有一個帶有控件的表單,用戶必須輸入數據,我想讓他們選擇取消表單並返回主表單。
我應該注意到,我將modalresult分配給mrCancel作爲取消按鈕,就像我爲輔助表單上的OK按鈕執行mrOK操作一樣。 OK按鈕工作正常,但如果我點擊取消按鈕,該應用程序不做任何事情,使它,所以我不能再次單擊確定按鈕。
我本來認爲我可以做以下
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財產 - 但它不工作
你的第二個解決方案是行不通的。取消showmessage在模態對話框表單之前顯示。然後單擊對話框上的任一按鈕(確定或取消)即可終止整個應用程序。知道爲什麼它首先調用這部分代碼會很有趣。第一個解決方案似乎可行,但我需要更多地進行測試。 – LuvRAD
主窗體上的showmodals導致問題!我擺脫了他們,它似乎現在工作正常 – LuvRAD
請參閱[關閉模式對話框在德爾福firemonkey手機應用程序(Android)](http://stackoverflow.com/a/26875930/576719)爲正確的模式如何關閉一個在FireMonkey中的模式形式。代替DisposeOf,在模式對話框的OnClose事件中設置「Action:= TCloseAction.caFree;」。 –