Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Android-Screen-Orientation zur Runtime setzen? (https://www.delphipraxis.net/205949-android-screen-orientation-zur-runtime-setzen.html)

philipp.hofmann 2. Nov 2020 22:25

Android-Screen-Orientation zur Runtime setzen?
 
Hi,

ich habe das Problem, dass ich für meine App die beiden Screen-Orientations
Delphi-Quellcode:
  Application.FormFactor.Orientations := [TFormOrientation.Landscape, TFormOrientation.InvertedLandscape];
über die Projektoptionen zugelassen habe. Trotzdem ist beim FormCreate und FormActivate zumindest beim Start der App die Orientation zuweilen auch eine der beiden Portrait-Orientations.
Ich habe dies mit
Delphi-Quellcode:
  clientScreenService.getScreenOrientation (=IFMXScreenService)
gecheckt. Ich finde zwar alte Post, wo die Orientation auch zur Runtime mit
Delphi-Quellcode:
  clientScreenService.setScreenOrientation
gesetzt wird, dies scheint aber mittlerweile nicht mehr zu existieren. Ich habe versucht es mit
Delphi-Quellcode:
  clientScreenService.setSupportedScreenOrientations([TScreenOrientation.Landscape]);
zu fixen, dies hilft aber auch nicht.

Gibt es irgendeine Chance, wie ich es zur Laufzeit nochmals korrigieren kann
oder was ist der erste Punkt, wo es auch unter Android richtig ist?
Aktuell suche ich einen Punkt, wo sich mein Programm auf meinem Smartphone aufhängt und auf dem Tablet sauber durch läuft und finde es eben befremdlich, dass ich überhaupt in die falsche Orientation laufe.

Grüße, Philipp

TurboMagic 3. Nov 2020 20:09

AW: Android-Screen-Orientation zur Runtime setzen?
 
Wie äußert sich das Aufhängen? Was steht im Android Logcat Log.

philipp.hofmann 4. Nov 2020 09:10

AW: Android-Screen-Orientation zur Runtime setzen?
 
Ich sehe in meinen eigenen Logs, dass sich das Programm z.B. beim Setzen der FontSize, um es an die jeweilige Display-Größe anzupassen aufhängt. Dies passiert übrigens nur bei meinem Samsung S10 Smartphone, bei allen anderen Android-Devices läuft dies durch und es gab auch noch nie die Meldung von den Prelaunch-Tests von Google, das es sich aufhängt.

Wenn ich genügend sleep(100) in dem Teil des Codes platziere, der die Größenanpassungen durchführt, funktioniert es.
Daher mein Interesse, dass die Screen-Orientation von Anfang an, korrekt gesetzt ist (so wie es bei Windows, iOS und MacOS auch der Fall ist).

TurboMagic 4. Nov 2020 19:47

AW: Android-Screen-Orientation zur Runtime setzen?
 
Naja, Delphi schreibt oft Daten ins Android Log die manchmal auf was deuten... Das bekommt "dein" Log vermutlich nicht mit.

philipp.hofmann 5. Nov 2020 10:04

AW: Android-Screen-Orientation zur Runtime setzen?
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi,

anbei mal zwei logcat-Dateien.
Die erste (noOkay-Variante) weist sehr, sehr viele Einträge wie folgt auf:

Code:
[11-05 10:33:31.313 2682:2682 D/DecorView]
semSetRoundedCorners: 5
immer mal wieder unterbrochen von einem
Code:
[11-05 10:33:37.148 2682:2682 I/ViewRootImpl@5dbb17a[MainActivity]]
ViewPostIme pointer 1
In der zweiten Datei, wo im Code einige Sleep(50) und Sleep(500) eingefügt wurden, sind beide Infos deutlich seltener zu finden.
Einen Reim kann ich mir daraus nicht machen. Wie schon gesagt, ich weiß, dass ich laut meinem Log an der Stelle von Font.Size-Settings aufrufe.

Grüße, Philipp

Grüße, Philipp

TurboMagic 5. Nov 2020 20:07

AW: Android-Screen-Orientation zur Runtime setzen?
 
Kann das in einem minimalen Programm reproduziert werden?
Ist eine aktive Subscription vorhanden?
Falls ja evtl. über das Supportportal auf der EMBT Webseite
einen offiziellen Fall aufmachen, dann meldet sich jemand von EMBT direkt und schaut sich das Mal an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz