代码之家  ›  专栏  ›  技术社区  ›  Kromster Satyajit

在用Delphi构建的FireMonkey Android应用程序中,在屏幕之间切换的正确方式是什么?

  •  1
  • Kromster Satyajit  · 技术社区  · 6 年前

    我正在使用FireMonkey在Delphi10.3中构建Android应用程序,我需要该应用程序有两个不同的屏幕-登录和主屏幕。如何正确地将这些组织到窗体、框架或其他方式上?这样登录屏幕就被主应用程序屏幕取代了。

    到目前为止,我已经创建了两个表单,并尝试通过以下方式切换它们:

    Form1.Hide;
    Form2.Show;
    

    但这根本不起作用,应用程序只是自动关闭。

    作为一个解决方法,我尝试将Form2嵌入到Form1中。这是可行的,但我怀疑这不是正确的方法:

    Form1.GroupBox1.Visible := False; // all elements reside on GroupBox1
    Form2.Parent := Form1;
    Form2.Show;
    

    因此,问题是如何在Delphi FireMonkey Android应用程序中正确设置和切换屏幕?

    P.S.我是Android开发的新手,正在寻找解决这个问题的Delphi方法。

    类似问题:

    Show login form before main form (表示应使用表单,缺少实际代码)

    2 回复  |  直到 6 年前
        1
  •  1
  •   Dave Nottage    6 年前

    我使用带有ttabcontrol(不显示选项卡)的单个表单,创建与ttabcontrol中的选项卡有父级关系的框架,并在选项卡之间切换以显示不同的框架。

    这样做的一个优点是能够进行转换,但是有一个缺点可能会让某些人感到不快:无法编辑帧上的自定义样式。

        2
  •  0
  •   Kromster Satyajit    6 年前

    从逻辑的角度来看,以下代码(在成功登录时运行)看起来是正确的,而且似乎也工作得很好:

    // Create only Form1 on app creation
    // Create Form2 on successfull login
    
    Application.CreateForm(TForm2, Form2);
    Form2.Show;
    Application.MainForm := Form2;
    Form1.Close;
    Form1.Free;
    Form1 := nil;
    

    如果有更好/适当的方法来做这件事,我也很想看到他们。

    推荐文章