我如何在FMX中使用showmodal?

时间:2015-11-09 12:52:14

标签: android delphi delphi-xe7 showmodaldialog

我正在尝试创建一个登录表单到我的主要Android表单,所以我做这样的事情

var
  CanGo: Boolean;

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  loginfrm := Tloginfrm.Create(nil);
    try
    loginfrm.ShowModal;
    CanGo := loginfrm.LoginSuccess = true;
  finally
    FreeAndNil(loginfrm);
  end;
  if CanGo then
  Application.Run;
end.

我一直在win32应用程序中执行此操作并且其工作正常,当我尝试在触摸屏上停止的Android应用程序上执行相同的操作并且不会显示登录表单时,在Android上显示模式是不同的?我做错了什么?

1 个答案:

答案 0 :(得分:4)

这里有很多类似的问题。阅读文档:

FMX.Forms.TCommonCustomForm.ShowModal

  

警告: Android应用中不支持模态对话框。您应该拨打Show,然后让表单返回并调用您的活动,而不是调用 ShowModal 。我们建议不要在任何一个移动平台(iOS和Android)上使用模态对话框,因为可能会导致意外行为。避免使用模态对话框消除了调试和支持移动应用程序的潜在问题。

自从引入移动平台以来,Embarcadero提出了一种不同的方式来呼叫ShowModal。所有这些都有缺陷,现在文档告诉你根本不要使用它们。