Для решения задачи с определением разрешения воспользуемся JNI (Android API: http://developer.android.com/reference/android/util/DisplayMetrics.html).
На самом деле объяснять тут не чего особо, поэтому я просто приведу код проекта. Не забываем подключить в uses «FMX.Helpers.Android, Androidapi.JNI.Util;». Код, приведённый ниже расписан, чтобы всё было понятно.
Код проекта:
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
FMX.Helpers.Android, Androidapi.JNI.Util;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
procedure FormResize(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Disp: JDisplayMetrics;
NativeClientHeight, NativeClientWidth: Single; // Для формы
implementation
{$R *.fmx}
procedure TForm1.FormResize(Sender: TObject);
begin
// Общая строчка для экрана и формы
Disp := GetJDisplayMetrics;
// Экран
Label2.Text := 'Width: ' + Disp.widthPixels.ToString();
Label3.Text := 'Height: ' + Disp.heightPixels.ToString();
//**********
// Форма
NativeClientHeight := ClientHeight * Disp.density;
NativeClientWidth := ClientWidth * Disp.density;
Label5.Text := 'Width: ' + FloatToStr(NativeClientWidth);
Label6.Text := 'Height: ' + FloatToStr(NativeClientHeight);
//**********
// Orientation
if (Height > Width) then
Label7.Text := 'Orientation: Portrait'
else if (Height < Width) then
Label7.Text := 'Orientation: Landscape';
end;
end.
Исходный код проекта: Скачать с Google Drive

