Einzelnen Beitrag anzeigen

philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
859 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: FMX IFMXScreenService GetScreenScale

  Alt 28. Jan 2020, 12:42
Ich persönlich nutze eine andere Variante, weil GetScreenScale nur beim ersten Display funktioniert. Elegant ist anders, aber es funktioniert:

Delphi-Quellcode:
  osScale:=1.00;
  if ((currentDisplay=0) and (TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(service)))) then
  begin
    osScale:=service.GetScreenScale;
  end else begin
    if (lastWindowState<>TWindowState.wsMaximized) then
      self.WindowState:=TWindowState.wsMaximized;
    try
      osScale:=Screen.Displays[currentDisplay].BoundsRect.Width / self.Width;
    except on E: Exception do
      begin
        osScale:=1;
      end;
    end;
    if (lastWindowState<>TWindowState.wsMaximized) then
      self.WindowState:=TWindowState.wsNormal;
  end;
  Mit Zitat antworten Zitat