Свойство Orientations
представляет собой TFormOrientations
, которое является System::Set
из TFormOrientation
значений. Вы не можете использовать Set::operator==
, чтобы сравнить его с одним значением, поэтому вы получаете ошибку компилятора. Однако вы можете использовать метод Set::Contains()
, чтобы проверить, имеет ли оно заданное значение, например:
if (Application->FormFactor->Orientations.Contains(Fmx::Forms::TFormOrientation::Landscape)) {
//...
}
В любом случае свойство Orientations
указывает, какую ориентацию (и)) формы приложения могут принимать (для значения 11 его 1-й, 2-й и 4-й биты установлены в 1, что соответствует ориентациям Portrait
, Landscape
и InvertedLandscape
, являющимсявключен). Он не сообщает, какова текущая ориентация устройства. Для этого используйте метод IFMXScreenService::GetScreenOrientation()
, например:
_di_IFMXScreenService ScreenService;
if (TPlatformServices::Current->SupportsPlatformService(__uuidof(IFMXScreenService), &ScreenService)) {
if (ScreenService->GetScreenOrientation() == Fmx::Types::TScreenOrientation::Landscape) {
//...
}
}