【问题标题】:Firemonkey: How to iterate through all forms in the application using TScreen.FormsFiremonkey:如何使用 TScreen.Forms 遍历应用程序中的所有表单
【发布时间】:2015-10-08 20:46:19
【问题描述】:

我正在尝试遍历我在应用程序中打开的表单。我找到了FMX.Forms.TScreen.Forms 的文档,看起来它可以用来实现我的目标。但是,我对应该如何使用它感到困惑。

起初我在表单的 CPP 文件中的一个函数中尝试了这个:

ShowMessage( Forms::TScreen::FormCount );

这产生了错误'Member TScreen::FormCount cannot be used without an object'

我认为这意味着我需要尝试从我的表单或从全局 Application 变量访问此属性。我都试过了

this->Forms...
Application->Forms...

this->TScreen...
Application->TScreen...

但是,FormsTScreen 都不存在于这些对象中。

如何访问Forms.TScreen.Forms

【问题讨论】:

    标签: c++ forms firemonkey c++builder-xe8


    【解决方案1】:

    错误给了你一个线索:

    成员 TScreen::FormCount 不能在没有对象的情况下使用

    TScreen 是一个类,而不是一个对象。 FormCount 不是该类的静态成员,因此您需要一个 TScreen 类的对象实例。并且为你提供了这样一个对象——全局Screen对象:

    ShowMessage( Screen->FormCount );
    

    这在文档中有说明:

    FMX.Forms.TScreen

    有一个TScreen 类型的全局变量Screen,它被实例化以供任何具有GUI 的应用程序使用。使用Screen 获取有关应用程序中屏幕当前状态的信息。

    FMX.Forms.Screen

    外部 DELPHI_PACKAGE TScreen* 屏幕;

    【讨论】:

      【解决方案2】:

      以下是行之有效的方法:

      ShowMessage(Screen->FormCount);
      

      Screen 是一个全局对象,如Application。编译器说FormCount不是静态方法或smth。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-14
        • 2011-08-28
        • 2011-09-15
        • 2011-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多