// Die Skalierung des Bildschirm wird ermittelt.
// Getestet mit RS 10.4 unter Win11
// Variante 1function TForm1.Skalierung: Integer;
var
dc: HDC;
lp: Integer;
begin
dc := GetDC(0);
lp := GetDeviceCaps(dc, LOGPIXELSX);
result := 100 * lp div 96;
releasedc(0, dc);
end;
// Variante 2
// (Da nach einem Update Variante 1 bei mir nicht mehr funtionierte)
function Skalierung: integer;
var
cd: cardinal;
reg: TRegistry;
begin
cd := 0;
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
if reg.OpenKey('Control Panel\Desktop\WindowMetrics', false) then
cd := reg.ReadInteger('AppliedDPI');
reg.CloseKey;
reg.Free;
Result := trunc(cd / 0.96);
end;
// Beispielaufruf
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
i := Skalierung;
ShowMessage('Skalierung: ' + InttoStr(i) + '%');
end;
|