8

我有这段代码

procedure TFormMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
  msg: String;
begin
  msg := 'Do you really want to exit?';

  if MessageDlg(msg, TMsgDlgType.mtConfirmation,
    [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0) = mrNo then
    CanClose := False
  else
    CanClose := True; { FIXME: don't want to work on Android }
end;

它在 Windows 上完美运行。如果我选择“是”,应用程序将关闭。但是,应用程序不会在 Android 上关闭。我做错了什么?

4

4 回答 4

13

在关闭最后一个表单时关闭应用程序是 Windows 的事情。Android 应用程序将继续运行。

要关闭 Android 上的应用程序,请SharedActivity.finish从本FMX.Helpers.Android机调用。

于 2013-10-08T14:11:57.727 回答
7
uses 
  FMX.Platform.Android;

procedure TForm2.SpeedButton1Click(Sender: TObject); 
begin 
  MainActivity.finish; 
end; 
于 2013-10-14T03:40:52.500 回答
1

我尝试了所有组合。

 - SharedActivity.Finish - NOT WORKING FOR ME
 - MainActivity.Finish - NOT WORKING FOR ME
 - Application.MainForm.DisposeOf - NOT WORKING FOR ME

这对我有用:

 FreeAndNil(Application);
于 2014-03-03T22:33:42.307 回答
0

调用 Halt 也会关闭应用程序。

于 2013-10-09T09:16:45.273 回答