Einzelnen Beitrag anzeigen

Rapunzel

Registriert seit: 1. Mär 2019
48 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: FMX Android/Windows Anleitung oder Demo gesucht für Auflösungsanpassungen

  Alt 6. Feb 2022, 18:37
Hallo Thorsten,

mit einem ausführlichen Tutorial kann ich Dir nicht dienen. Aber vielleicht bringt Dich dieser Betrag etwas weiter:

https://www.delphipraxis.net/180598-...r-android.html

Die Möglichkeiten, die Dir Layouts, Multiresbitmaps und die Properties Align, Anchors, Margin, Padding bieten, sind Dir bekannt?

Ich habe einige EBooks durchgefräst. Ich komme zu den Fazit, dass Bücher dort Enden wo die Probleme anfangen. Das Buch von Andrea Magni fand ich noch am besten.
https://www.packtpub.com/product/del.../9781788624176


Hier mein Code, mit dem ich mir über die Informationen über das Gerät anzeigen lasse, auf dem meine App läuft. Das hat mir geholfen, die Zusammenhänge zwischen logischen und physikalischen Koordinaten, Screenscale, Bitmapscale und Zoomfaktor des Tablets zu verstehen.

Delphi-Quellcode:
procedure TfrmSystemInfo.FormCreate(Sender: TObject);
Var ScreenSvc:IFMXScreenService; W,H:Integer; DevMet:IFMXDeviceMetricsService;
    DspMet:TDeviceDisplayMetrics; Device:IFMXDeviceService;
    SO:TScreenOrientation;
begin
  ShowDeviceInfo;

  DevMet:=IFMXDeviceMetricsService(TPlatformServices.Current.GetPlatformService(IFMXDeviceMetricsService));
  Device:=IFMXDeviceService(TPlatformServices.Current.GetPlatformService(IFMXDeviceService));
  ScreenSvc:=IFMXScreenService(TPlatformServices.Current.GetPlatformService(IFMXScreenService));
  DspMet:=DevMet.GetDisplayMetrics;

  LTouchScreen.Visible:=(TDeviceFeature.HasTouchScreen in Device.GetFeatures);

  LPhysicalSize.Text:=Format('Width %d x Height %d',
                      [DspMet.PhysicalScreenSize.cx,DspMet.PhysicalScreenSize.cy]);


  LRawSize.Text:=Format('Width %d x Height %d',
                      [DspMet.RawScreenSize.cx,DspMet.RawScreenSize.cy]);

  LLogicalMetricsSize.Text:=Format('Width %d x Height %d',[DspMet.LogicalScreenSize.cx,DspMet.LogicalScreenSize.cy]);

  LLogicalScreenSize.Text:=Format('Width %.0f x Height %.0f',[Screen.Size.cx,Screen.Size.cy]);

  LLogicalDeviceSize.Text:=Format('Width %.0f x Height %.0f',[ScreenSvc.GetScreenSize.X,ScreenSvc.GetScreenSize.Y]);

  LScreenScale.Text:=Format('%f', [DspMet.ScreenScale]);

  LFontScale.Text:=Format('%f', [DspMet.FontScale]);
  LAspectRatio.Text:=Format('%f', [DspMet.AspectRatio]);

  SO:= ScreenSvc.GetScreenOrientation;

  case SO of
    TScreenOrientation.Portrait: LOrientation.Text:='Portrait';
    TScreenOrientation.Landscape: LOrientation.Text:='Landscape';
    TScreenOrientation.InvertedPortrait: LOrientation.Text:='InvertedPortrait';
    TScreenOrientation.InvertedLandscape: LOrientation.Text:='InvertedLandscape';
    else LOrientation.Text:='Unknown';
  end;

end;
Grüße vom FMX Anfänger
  Mit Zitat antworten Zitat