Browsed by
月份:2015年5月

Delphi XE8下ANDROID按下返回键HardwareBack使用MessageDlg的问题

Delphi XE8下ANDROID按下返回键HardwareBack使用MessageDlg的问题

DELPHI XE8下,由于MessageDlg没有返回值,造成我们在捕获Android的返回键HardwareBack 上造成困难
这里使用了MainActivity.finish,Form的Close过程执行不到,所以要把Close做的工作,放在里面重做一次

uses  FMX.Platform.Android;
procedure TFrm_Main.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
  Shift: TShiftState);
begin
 {$IFDEF ANDROID}
  if Key = vkHardwareBack then
  begin
  //这里处理back键的代码

  MessageDlg('是否退出?',
    System.UITypes.TMsgDlgType.mtConfirmation,
    [System.UITypes.TMsgDlgBtn.mbOK, System.UITypes.TMsgDlgBtn.mbCancel],
    0,
     procedure(const AResult: TModalResult)
     Begin
     if AResult = mrok then
     Begin
//这里要把Close的操作再做一次
      MainActivity.finish;
     End;
     End
     );

  Key := 0;//处理完后清0.
  end;
  {$ENDIF}

end;