Inno 设置向导页面在屏幕上的位置(偏心位置)
Inno Setup Wizard Page onscreen placement (off-centre position)
我想说明向导页面默认情况下不会在屏幕中间打开,即使用 x,y 坐标(或类似的偏移量)将它们稍微偏离中心。这是因为我调用了另一个同样在屏幕中间打开的程序,遮住了进度页面。例如,如果我可以打开所有向左或顶部偏移的向导页面,则意味着 windows 将同时可见,而无需重新定位它们。这可能吗?如果可能,如何实现?
我已经有一段时间没有使用 INNO 了,但我相信您可以使用 [CODE] 部分中的一些自定义代码来做到这一点。您必须创建重载以在 InitializeWizard() 中根据需要修改 WizardForm..Left 和 WizardForm..Top。
检查 Examples 文件夹中的 CodeDlg.iss 和 CodeClassess.iss,可能还有其他内容,以获取示例 (sic) 和有关如何正确设置 [CODE] 部分的详细信息。
有用的文档:http://www.jrsoftware.org/ishelp/index.php?topic=scriptclasses
只需根据需要偏移 WizardForm.Left
和 WizardForm.Top
:
procedure InitializeWizard();
begin
WizardForm.Left := WizardForm.Left - ScaleX(320);
WizardForm.Top := WizardForm.Top - ScaleY(160);
end;
或者也许:
procedure InitializeWizard();
begin
WizardForm.Left := WizardForm.Left div 2;
WizardForm.Top := WizardForm.Top div 2;
end;
我想说明向导页面默认情况下不会在屏幕中间打开,即使用 x,y 坐标(或类似的偏移量)将它们稍微偏离中心。这是因为我调用了另一个同样在屏幕中间打开的程序,遮住了进度页面。例如,如果我可以打开所有向左或顶部偏移的向导页面,则意味着 windows 将同时可见,而无需重新定位它们。这可能吗?如果可能,如何实现?
我已经有一段时间没有使用 INNO 了,但我相信您可以使用 [CODE] 部分中的一些自定义代码来做到这一点。您必须创建重载以在 InitializeWizard() 中根据需要修改 WizardForm..Left 和 WizardForm..Top。
检查 Examples 文件夹中的 CodeDlg.iss 和 CodeClassess.iss,可能还有其他内容,以获取示例 (sic) 和有关如何正确设置 [CODE] 部分的详细信息。
有用的文档:http://www.jrsoftware.org/ishelp/index.php?topic=scriptclasses
只需根据需要偏移 WizardForm.Left
和 WizardForm.Top
:
procedure InitializeWizard();
begin
WizardForm.Left := WizardForm.Left - ScaleX(320);
WizardForm.Top := WizardForm.Top - ScaleY(160);
end;
或者也许:
procedure InitializeWizard();
begin
WizardForm.Left := WizardForm.Left div 2;
WizardForm.Top := WizardForm.Top div 2;
end;