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/)
-   -   FMX Android/Windows Anleitung oder Demo gesucht für Auflösungsanpassungen (https://www.delphipraxis.net/209882-fmx-android-windows-anleitung-oder-demo-gesucht-fuer-aufloesungsanpassungen.html)

tdeck 3. Feb 2022 15:20

FMX Android/Windows Anleitung oder Demo gesucht für Auflösungsanpassungen
 
Hallo Leute,

ich arbeite mich im Moment in das FMX ein, ich möchte eine Anwendung für Windows und Android erstellen.
Gibt es ein gutes Demo oder eine Anleitung wie man die Benutzeroberfläche anpasst beim drehen des Bildschirms
anderes Gerät mit anderer Auflösung?

Ich habe schon fleissig gegoogelt, aber noch nichts passendes gefunden.

Gruß
Thorsten

Rapunzel 6. Feb 2022 17:37

AW: FMX Android/Windows Anleitung oder Demo gesucht für Auflösungsanpassungen
 
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

tdeck 28. Feb 2022 20:00

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

vielen Dank. Ich schaue mir das mal in Ruhe an.

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

Teilweise schon, aber aber ich finde keinen richtigen Ansatz für folgende Probleme um das Ganze irgendwie intuitiv zu gestalten.

Ich habe meine App mit Tabcontrols und Tabitems ausgestattet, hochkant sieht es recht gut aus, wenn ich aber das Tablet oder Handy drehe habe ich ja meine Button's/Edit's weiter unten sitzen. Mein Problem ist nun bei einer Eingabe mit der Tastatur wird das Eingabefeld verdeckt, man schreibt also blind.

Ich stelle mir das eigentlich so vor, das bei der Eingabe die Tastatur von unten aufpoppt und dann aber das Eingabefeld / Screen nach oben über die eingeblendete Tastatur rutscht, damit man dieses Feld bei der Eingabe auch sieht.
Das muss doch irgendwo zu aktivieren sein, meinetwegen auch über das hochziehen mit den Fingern. Aber ich bekomme das nicht brauchbar hin. Gerade wenn die Inhalte auf dem Tabcontrol weiter gehen als der Screen, dann müsste es doch eigentlich über einen ziehen der Finger über den Bildschirm nach oben gehen.
Wie bekommt man sowas brauchbar hin. Das Buch habe ich mir schon gekauft ;-) und bin gerade beim lesen.

Ich meine bei Windows kann ich bei einem kleineren Bildschirm/Fenster Scrollbars einblenden, unter Android müsste dies doch mit den Fingern machbar sein.

Gruß
Thorsten

TurboMagic 28. Feb 2022 21:28

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

das erste, was du dir für dieses Problem anschauen solltest ist
die TVertScrollbox Komponente. Die hat bei Bedarf einen Scrollbar.

Dann hat gibt es einen Keyboard oder KDb oder so FMX-Service über
den kannst du per Events mitbekommen, wenn die tastatur geöffnet
und geschlossen wird.

Soviel mal heute Nacht dazu.

Grüße
TurboMagic


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:43 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