Firemonkey: Как перебрать все формы в приложении, используя 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?

0

Решение

Ошибка дает вам подсказку:

Член TScreen :: FormCount не может быть использован без объекта

TScreen это класс, а не объект. FormCount не является статическим членом класса, поэтому вам нужен экземпляр объекта TScreen учебный класс. И такой объект предоставляется вам — глобальный Screen объект:

ShowMessage( Screen->FormCount );

Об этом говорится в документации:

FMX.Forms.TScreen

Существует глобальная переменная, Screen, типа TScreen, который создается для использования любым приложением с графическим интерфейсом. использование Screen получить информацию о текущем состоянии экрана в приложении.

FMX.Forms.Screen

extern DELPHI_PACKAGE TScreen * Экран;

2

Другие решения

Вот что работает хорошо:

ShowMessage(Screen->FormCount);

Screen это глобальный объект, как Application, Компилятор сказал, что FormCount это не статический метод или что-л.

0