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;