Как определить изменение разрешения экрана в Delphi FireMonkey FMX - PullRequest
1 голос
/ 16 июня 2020

Как определить изменение разрешения экрана в Delphi FireMonkey / FMX

Это решение для VCL уже опубликовано Как определить изменение разрешения экрана в Delphi?

Это решение хорошо работает для VCL, но я ищу решение для FireMonkey.

1 Ответ

0 голосов
/ 21 июня 2020

Попробуйте эти коды. Сначала добавьте FMX.Platform для использования:

function ScreenResolutionChanged(old, new: string): Boolean;
begin
  if old <> new then
    Result := True
  else
    Result := False;
end;

function getScreenSize: string;
var
  ScreenSvc: IFMXScreenService;
  ScreenSize: TSize;
begin
  if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService,
    IInterface(ScreenSvc)) then
  begin
    Result := Format('Resolution: %fX%f', [ScreenSvc.GetScreenSize.X,
        ScreenSvc.GetScreenSize.Y]);
  end;
end;

procedure TForm2.Button1Click(Sender: TObject);
var
  oldScreenSize, newScreenSize: string;
begin
  oldScreenSize := getScreenSize;
  Sleep(10000); // Wait 10 Sec
  newScreenSize := getScreenSize;
  if ScreenResolutionChanged(newScreenSize, oldScreenSize) then
    ShowMessage('Screen Resolution Changed ' + #10#13 + oldScreenSize + #10#13 +
      newScreenSize)
  else
    ShowMessage('Screen Resolution NOT Changed ' + #10#13 + oldScreenSize +
      #10#13 + newScreenSize);
end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...