我使用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()
在两个平台上都使用该方法,以aResultProc
作为参数的重载版本应在Android上运行。要TForm
在关闭时释放这种模式,请使用其OnClose
事件,将Action
参数设置为caFree
。在文档中对此进行了全部解释:
例如:
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
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句