За этот вопрос в Delphi приложение FMX можно выборочно перевести в альбомную или портретную ориентацию с помощью кода, подобного следующему:
procedure TForm1.Chart1Click(Sender: TObject);
begin
if Application.FormFactor.Orientations = [TScreenOrientation.Landscape] then
Application.FormFactor.Orientations := [TScreenOrientation.Portrait]
else
Application.FormFactor.Orientations := [TScreenOrientation.Landscape];
end;
end;
Я не могу понять, как перевести этот кодвыше для C ++ Builder. Я попробовал следующий код, основанный на для этого поста , но он дает нарушение прав доступа как на iOS, так и на Android:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
_di_IInterface Intf;
if (TPlatformServices::Current->SupportsPlatformService(__uuidof(IFMXScreenService), Intf))
{
_di_IFMXScreenService ScreenService = Intf;
TScreenOrientations Orientation;
Orientation << TScreenOrientation::Landscape;
ScreenService->SetScreenOrientation(Orientation);
}
}
Это возможно даже в FMX с C ++ Builder?