AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Screen.displayCount=0 bei Android Device (hier Fire HD 10, 9.Gen)
Thema durchsuchen
Ansicht
Themen-Optionen

Screen.displayCount=0 bei Android Device (hier Fire HD 10, 9.Gen)

Ein Thema von philipp.hofmann · begonnen am 1. Nov 2019 · letzter Beitrag vom 15. Nov 2019
Antwort Antwort
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
859 Beiträge
 
Delphi 10.4 Sydney
 
#1

Screen.displayCount=0 bei Android Device (hier Fire HD 10, 9.Gen)

  Alt 1. Nov 2019, 13:32
Hi,

hat jemand von euch schon mal das Problem gehabt, dass bei einem Tablet (hier Fire HD 10, 9.Gen -> Android 9 Pie) der DisplayCount=0 ist.
In dem Fall gehen z.B. keine Comboboxen auf, weil die Software nicht weiß, wo sie sie anzeigen soll. Ist dies ein Bug in Delphi oder in der Amazon Android-Integration?
Ein Samsung-Tablet mit Android 9 Pie läuft problemlos.

Ich habe mal einen Issue aufgemacht und vielleicht geht es auch mit der Android 64-Bit-Version, welche uns in 10.3.3 erwartet:
https://quality.embarcadero.com/browse/RSP-26563

Aber vielleicht gibt es ja auch einen Trick.

Grüße, Philipp
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
859 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Screen.displayCount=0 bei Android Device (hier Fire HD 10, 9.Gen)

  Alt 15. Nov 2019, 13:11
Ist leider mal wieder das typische Problem:
- der Delphi-Support sagt Amazon ist schuld
- der Amazon-Support sagt Delphi ist schuld

Temporäre Lösung: FMX.Forms zu patchen und für Android habe ich die MultiDisplaySupported-Methode angepasst (davor durchlief auch Android den {$ELSE}-Weg:

Delphi-Quellcode:
function TScreen.MultiDisplaySupported: Boolean;
begin
  {$IFDEF ANDROID}
    if FMultiDisplaySvc = nil then
    begin
      Result := TPlatformServices.Current.SupportsPlatformService(IFMXMultiDisplayService, FMultiDisplaySvc);
      if (Result and (IFMXMultiDisplayService(FMultiDisplaySvc).DisplayCount<=0)) then
        Result:=false;
    end else if ((FMultiDisplaySvc<>nil) and (IFMXMultiDisplayService(FMultiDisplaySvc).DisplayCount<=0)) then
      Result:=false
    else
      Result := True;
  {$ELSE}
    if FMultiDisplaySvc = nil then
      Result := TPlatformServices.Current.SupportsPlatformService(IFMXMultiDisplayService, FMultiDisplaySvc)
    else
      Result := True;
  {$ENDIF}
end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 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