Динна упомянула, что DPI можно определить следующим образом:
Вы можете определить размер DPI с помощью свойства TGraphicsObject.PixelsPerInch
и загрузить другое изображение.
Тем не менее, документация InnoSetup предполагает, что TGraphicsObject
не имеет атрибута PixelsPerInch
, вместо этого он является атрибутом TFont
объектов.
Таким образом, можно определить DPI и реализовать пользовательские настройки, используя код, подобный этому.:
procedure CheckDPI;
var
CurrentDPI, StandardDPI, MediumDPI, LargeDPI: Integer;
begin
{ Get the current DPI }
CurrentDPI := WizardForm.Font.PixelsPerInch;
{ Store defaults determined from Windows DPI settings }
StandardDPI := 96; { 100% }
MediumDPI := 120; { 125% }
LargeDPI := 144; { 150% }
if (CurrentDPI >= StandardDPI) and (CurrentDPI < MediumDPI) then
begin
{ Execute some custom code for small to medium DPI }
end
else if (CurrentDPI >= MediumDPI) and (CurrentDPI < LargeDPI) then
begin
{ Execute some custom code for medium to large DPI }
end
else if (CurrentDPI >= LargeDPI) then
begin
{ Execute some custom code for large DPI or above }
end;
end;