FAQ FM
Устройство
Экран

:: Меню ::
:: На главную ::
:: FAQ ::
:: Заметки ::
:: Практика ::
:: Win API ::
:: Проекты ::
:: Скачать ::
:: Секреты ::
:: Ссылки ::

:: Сервис ::
:: Написать ::

:: MVP ::

:: RSS ::

Яндекс.Метрика

Как получить разрешение экрана, его логические и физические размеры?

uses
  FMX.Platform;

procedure TForm2.Button1Click(Sender: TObject);
var
  ScreenService: IFMXScreenService;
  LogicScreenSize: TPoint;
  ScreenScale: Single;
begin
   // Запрашиваем сервис экрана, для получения информации о размере и текущем коэффициенте масштабирования
   if TPlatformServices.Current.SupportsPlatformService( IFMXScreenService, IInterface( ScreenService ) ) then
   begin
      LogicScreenSize := ScreenService.GetScreenSize.Round;
      ScreenScale := ScreenService.GetScreenScale;
      LabelLogicScreenSize.Text := Format( 'Логический размер: %d, %d',
                                           [LogicScreenSize.X, LogicScreenSize.Y] );
      LabelPhysicScreenSize.Text := Format( 'Физический размер: %f, %f',
                                            [LogicScreenSize.X * ScreenScale, LogicScreenSize.Y * ScreenScale] );
      LabelScreenScale.Text := Format( 'Коэффициент масштабирования: %f',
                                       [ScreenService.GetScreenScale] );
   end;
end;

При использовании материала - ссылка на сайт обязательна