Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Fragen zu FMX unter Android (https://www.delphipraxis.net/180598-fragen-zu-fmx-unter-android.html)

RWarnecke 11. Jun 2014 18:40

AW: Fragen zu FMX unter Android
 
Zitat:

Zitat von greenmile (Beitrag 1261953)
Ist vielleicht eine blöde Frage, aber wie hast Du das realisiert? Wenn ich eine zweite Form mit .Show anzeige, dann klappt das nicht 100%. Oder handelst Du das direkt in der DPR?

Ich handel das direkt in der DPR ab, so zum Beispiel :
Delphi-Quellcode:
{$R *.res}

////////////////////////////////////////////////////////////////////////////////
///
///  To check if the app is running on a Pad
///
function IsPad: Boolean;
begin
{$IFDEF IOS}
  Result := TUIDevice.Wrap(TUIDevice.OCClass.currentDevice).userInterfaceIdiom = UIUserInterfaceIdiomPad;
{$ENDIF}
{$IFDEF ANDROID}
  Result := (MainActivity.getResources.getConfiguration.screenLayout and TJConfiguration.JavaClass.SCREENLAYOUT_SIZE_MASK)
    >= TJConfiguration.JavaClass.SCREENLAYOUT_SIZE_LARGE;
{$ENDIF}
end;
////////////////////////////////////////////////////////////////////////////////
///
///  Main Program
///
begin
  Application.Initialize;
  Application.FormFactor.Orientations := [TFormOrientation.Portrait, TFormOrientation.InvertedPortrait,
                                          TFormOrientation.Landscape, TFormOrientation.InvertedLandscape];
  if IsPad then
    Application.CreateForm(TPadMainForm, PadMainForm)
  else
    Application.CreateForm(TPhoneMainForm, PhoneMainForm);
  Application.Run;
end.

greenmile 12. Jun 2014 09:11

AW: Fragen zu FMX unter Android
 
Die Form-Vererbung... Man, da hätte ich auch selbst drauf kommen können. :oops:
Vielen Dank, klappt super!

greenmile 12. Jun 2014 10:58

AW: Fragen zu FMX unter Android
 
Kleine Frage: Ich habe in der Quell-Form ein TScaledLayout, dessen Column[0] ich in einer abgeleiteten Form vergrößern möchte. Beim Start bekomme ich jedoch dann den Fehler

Code:
Exception EReadError in Modul xxx.exe bei 000C1EE0.
Fehler beim Lesen von gridPanel.ColumnCollection: Eine Spalte, die Steuerelemente enthält, kann nicht gelöscht werden.
Ich habe jedoch nur die Größe im Designer geändert und die Original-Form läuft ...

RWarnecke 12. Jun 2014 11:49

AW: Fragen zu FMX unter Android
 
Warum dieses TScaledLayout ? Versuche mal die Komponenten nur mit Align und Anchors entsprechend zu Positionieren und Auszurichten. Habe damit bis jetzt keine Probleme gehabt.

greenmile 12. Jun 2014 12:19

AW: Fragen zu FMX unter Android
 
Ich verwend Checkboxen und wenn sich die Auflösung massiv ändert, dann ändert sich die Größe von den Teilen nicht. Außer halt bei TScaled.

RWarnecke 12. Jun 2014 12:29

AW: Fragen zu FMX unter Android
 
Sei mir net bös, aber warum Checkboxen. Ich habe bis jetzt noch keine Checkboxen in einer App gesehen. Dafür würde ich eher TSwitch nutzen.

greenmile 12. Jun 2014 13:02

AW: Fragen zu FMX unter Android
 
Steht so im Pflichtenheft :(

greenmile 19. Aug 2014 07:30

AW: Fragen zu FMX unter Android
 
Hat jemand eine Idee, wie ich zwischen den verschiedenen Größen unterscheide? Android Tablets gibt es ja von ... bis.

Ich kann ja im Designer verschiedene Tablets auswählen ("Google Nexus") usw. und alles darauf anpassen. Aber wie entscheide ich beim Start, welche der angepassten Forms geladen werden? Aktuell kann ich nach den Sourcen meiner Vorgänger nur zwischen Handy und Tablet unterscheiden.

greenmile 20. Aug 2014 08:51

AW: Fragen zu FMX unter Android
 
Frage selbst beantwortet, funktioniert in fast allen Fällen.

Code:

uses
  ...
  FMX.Platform.Android, Androidapi.JNI.GraphicsContentViewText, FMX.Helpers.Android,
  ...

function IsTabletNormal: Boolean; // z.B. Handy
begin
  Result := (MainActivity.getResources.getConfiguration.screenLayout and TJConfiguration.JavaClass.SCREENLAYOUT_SIZE_MASK)
    >= TJConfiguration.JavaClass.SCREENLAYOUT_SIZE_NORMAL;
end;

function IsTabletLarge: Boolean; // z.B. 7" Nexus
begin
  Result := (MainActivity.getResources.getConfiguration.screenLayout and TJConfiguration.JavaClass.SCREENLAYOUT_SIZE_MASK)
    >= TJConfiguration.JavaClass.SCREENLAYOUT_SIZE_LARGE;
end;

function IsTabletXLarge: Boolean; // z.B. 10" Nexus
begin
  Result := (MainActivity.getResources.getConfiguration.screenLayout and TJConfiguration.JavaClass.SCREENLAYOUT_SIZE_MASK)
    >= TJConfiguration.JavaClass.SCREENLAYOUT_SIZE_XLARGE;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 Uhr.
Seite 3 von 3     123   

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