Firemonkey:如何使用 TScreen.Forms 遍历应用程序中的所有表单
Firemonkey: How to iterate through all forms in the application using TScreen.Forms
我正在尝试遍历我在应用程序中打开的表单。我找到了 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...
然而,Forms
和 TScreen
都不存在于这些对象中。
我该如何访问 Forms.TScreen.Forms
?
以下是行之有效的方法:
ShowMessage(Screen->FormCount);
Screen
是一个全局对象,如 Application
。编译器说 FormCount
不是静态方法或 smth.
这个错误给了你一个线索:
Member TScreen::FormCount cannot be used without an object
TScreen
是一个 class,不是对象。 FormCount
不是 class 的静态成员,因此您需要 TScreen
class 的对象实例。并为您提供了这样一个对象-全局Screen
对象:
ShowMessage( Screen->FormCount );
文档中有说明:
There is a global variable, Screen
, of type TScreen
, which is instantiated for use by any application with a GUI. Use Screen
to obtain information about the current state of the screen in an application.
extern DELPHI_PACKAGE TScreen* Screen;
我正在尝试遍历我在应用程序中打开的表单。我找到了 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...
然而,Forms
和 TScreen
都不存在于这些对象中。
我该如何访问 Forms.TScreen.Forms
?
以下是行之有效的方法:
ShowMessage(Screen->FormCount);
Screen
是一个全局对象,如 Application
。编译器说 FormCount
不是静态方法或 smth.
这个错误给了你一个线索:
Member TScreen::FormCount cannot be used without an object
TScreen
是一个 class,不是对象。 FormCount
不是 class 的静态成员,因此您需要 TScreen
class 的对象实例。并为您提供了这样一个对象-全局Screen
对象:
ShowMessage( Screen->FormCount );
文档中有说明:
There is a global variable,
Screen
, of typeTScreen
, which is instantiated for use by any application with a GUI. UseScreen
to obtain information about the current state of the screen in an application.
extern DELPHI_PACKAGE TScreen* Screen;