Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
3.929 Beiträge
 
Delphi 12 Athens
 
#2

AW: Kann man die ScreenOrientation per Runtime festlegen ?

  Alt 3. Jul 2015, 17:36
ich habe nach ein bischen Recherche noch ältere Beiträge dazu gefunden, aber
insbesondere beim Checken der Soureces bin ich auf einen Weg gestossen der viel einfacher ist.

Ob das unter Android läuft weiss ich noch nicht, unter iOS scheint es jedenfalls gut zu laufen:

Es reicht offenar einfach die Orientation im Application Object per FormFaktor zu setzen,
dann wird das von den iOS Routinen korrekt verarbeitet.


Code:
procedure Update_FormFactor(FormFactor: TFormFactor; const orientSet : TScreenOrientations);
begin

  FormFactor.Orientations := orientSet;

end;

procedure Form_Orientation_Set(const orientSet : TScreenOrientations );
var
 ScreenService: IFMXScreenService;

begin
{$IFDEF IOS}
  Update_FormFactor(Application.FormFactor, orientSet);
{$ELSE IOS}

  if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService) then
  begin
    ScreenService := TPlatformServices.Current.GetPlatformService(IFMXScreenService) as IFMXScreenService;
    ScreenService.SetScreenOrientation(OrientSet);
   end;

{$ENDIF IOS}

end;
Ist vielleicht ein "Hack", aber ein recht schöner
Mit etwas Glück reicht das so auch für Android aus, dann kann ich die Platformservides wieder rausschmeissen.

Rollo
  Mit Zitat antworten Zitat