【发布时间】:2014-08-22 20:56:55
【问题描述】:
通常无需编写 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 后退按钮返回。但是一旦我再次保存项目然后尝试运行它,它就会停止工作。
【问题讨论】:
-
这段代码可以在原版应用程序中使用吗?
-
是的,确实如此。此外,当您查找 delphi android 后退按钮时,您会得到此代码。对于其他人,它确实有效
-
因此,问题中的代码在原版应用程序中的行为符合预期,但在您的应用程序中却没有。此时问题完全与您的应用程序中的代码有关,而不是问题中的代码。您应用中的代码只有您自己可以看到。我们能帮你什么吗?是时候制作 SSCCE 了。
-
好吧,我不知道问题是什么/可能是什么。调试也无济于事!我希望有人遇到同样的问题并解决它!
-
与其通过连续投票来攻击@Peter 和我自己,不如听从我们的建议。我们无法提供帮助的原因是您尚未提供描述、重现和隔离问题所需的信息。彼得和我说同样的话并不是巧合。您需要做的就是制作 SSCCE。当你这样做时,我预测你最终会自己解决问题。我不明白你为什么寻求帮助,然后忽略了给你的声音帮助。
标签: android delphi back-button delphi-xe5 delphi-xe6