Firemonkey:如何使用TScreen.Forms在应用程序中遍历所有表单

Firemonkey: How to iterate through all forms in the application using TScreen.Forms

本文关键字:遍历 表单 应用程序 何使用 TScreen Forms Firemonkey      更新时间:2023-10-16

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

首先,我在表单的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 ?

错误提示:

成员TScreen::FormCount不能在没有对象

的情况下使用

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

ShowMessage( Screen->FormCount );

这在文档中有说明:

FMX.Forms.TScreen

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

FMX.Forms.Screen

external DELPHI_PACKAGE TScreen* Screen;

效果如下:

ShowMessage(Screen->FormCount);

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