我使用自定义向导页面和自定义背景图像创建了一个设置。 问题出在非标准DPI系统上。
运行此设置时,背景图像显示不正确。 如何检测DPI大小并使用向导页面的自定义设置?
答案 0 :(得分:4)
“最正确”的方法是为小字体和大字体模式提供替代图像。 “稍微不正确”的方法是填充背景,使其显示而不是收缩。 “非常错误”的方法是尝试调整表单布局/大小以适应。
您可以使用TGraphicsObject.PixelsPerInch
属性检测DPI大小并加载其他图像。
答案 1 :(得分:4)
Deanna提到可以像这样检测DPI:
您可以使用
TGraphicsObject.PixelsPerInch
属性检测DPI大小并加载其他图像。
但是,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;
答案 2 :(得分:-3)
自己定义以下功能以欺骗Inno Setup:
function ScaleX(Value: Integer): Integer;
begin
Result := Value;
end;
function ScaleY(Value: Integer): Integer;
begin
Result := Value;
end;
Bing GO~