在 delphi radstudio 10.4 firemonkey 中创建一个新表单

Create a new form in delphi radstudio 10.4 firemonkey

我使用 Delphi firemonkey 为 android 和 windows 开发此应用程序。 android之前运行宁还好 11.更新手机后,应用程序正在强制关闭。未能解决最新 sdk 的问题以及操作清单文件,我不得不迁移到 rad studio 10.4。

该应用程序包含一个带有以下代码的按钮,用于创建一个新表单,该表单过去 运行 在 rad studio 10.3 中使用得很好。但是在 rad studio 10.4 中,按下按钮,没有任何反应,也没有显示表格。 我想知道是否有更新或更有效的方法来创建和显示表单。

 Application.CreateForm(Tfrm01, frm01);
 frm01.Parent:=frmMAIN;

TRY
{$IFDEF ANDROID}
    frm01.Show;
{$ENDIF}
{$IFDEF MSWINDOWS}
    frm01.ShowModal;
{$ENDIF}
FINALLY
{$IFDEF ANDROID}
    FreeAndNil(frm01);
{$ENDIF}
{$IFDEF MSWINDOWS}
    frm01.Free;
{$ENDIF}
END;

顺便说一句,我也试过用下面的代码来创建新的表单,结果相同:

frm01 := Tfrm01.Create(self);

TForm.Show() 不是模态的,它会立即退出,因此您要 Free() 在表单显示在屏幕上之前对其进行处理。在两个平台上都使用 TForm.ShowModal() 方法,以 ResultProc 作为参数的重载版本应该在 Android 上工作。要在关闭时释放这样的模式 TForm,请使用其 OnClose 事件,将 Action 参数设置为 caFree。这在文档中都有解释:

Using FireMonkey Modal Dialog Boxes

例如:

procedure Tfrm01.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := TCloseAction.caFree;
end;
frm01 := Tfrm01.Create(Application);
frm01.Parent := frmMAIN;
frm01.ShowModal(
  procedure(ModalResult: TModalResult)
  begin
    // do something...
  end
);