通常无需编写 android 后退按钮功能并让您返回到以前的表单。在我的应用程序中,我正在处理而不是返回它会关闭应用程序。我也尝试通过代码处理后退按钮,但这也没有用,它忽略了代码!
这是我用来处理后退按钮的代码:
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
var KeyChar: Char; Shift: TShiftState);
var
FService: IFMXVirtualKeyboardService;
begin
if Key = vkHardwareBack then
begin
TPlatformServices.Current.SupportsPlatformService
(IFMXVirtualKeyboardService, IInterface(FService));
if (FService <> nil) and (TVirtualKeyboardState.Visible
in FService.VirtualKeyBoardState) then
begin
// Back button pressed, keyboard visible, so do nothing...
end
else
begin
// Back button pressed, keyboard not visible or not supported on this platform
close;
end;
end;
end;
我曾经使用Delphi XE5,现在我使用XE6,希望问题得到解决,但遗憾的是没有。上面的代码也适用于 Delphi XE6 版本,对于 XE5 则略有不同。
更新:
我找到了解决我的问题的方法。但是我的delphi仍然反应很奇怪。当我创建一个新项目并添加以前项目中的文件时,我可以使用 android 后退按钮返回。但是一旦我再次保存项目然后尝试运行它,它就会停止工作。