在 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
);
我使用 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
);