我注意到,每个页面调用ShouldSkipPage
两次 - 实际显示页面之前和之后。只需将Log
添加到功能:
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if PageID = wpSelectDir then
Log('ShouldSkipPage for SelectDir was called');
Result := false;
end;
您将看到两次记录消息(并且通过在编译器中执行脚本,您可以看到,在显示页面后发生第二次调用)。
那么,有人可以解释一下,为什么它会在页面显示之后第二次被调用?这没有任何意义,可能会引起混淆甚至导致安装程序逻辑出现意外偏差。
另外,有没有办法阻止二次通话?
答案 0 :(得分:2)
第一个电话(或实际上是第一组电话)是找到要显示的下一页。
第二个电话(或实际上是第二组电话)是找到,如果有任何要返回的页面(以确定后退按钮是否应该可见)。< / p>
这样你就可以阻止用户在到达某个页面后返回。
一般情况下,ShouldSkipPage
event function可以随时被调用任意次。并且您的代码必须能够处理它。
如果您想在更改页面之前和之后进行特殊处理,请使用NextButtonClick
/ BackButtonClick
和CurPageChanged
,而不是ShouldSkipPage
。
以下示例显示了一旦&#34;准备安装&#34;以及如何防止用户修改安装。页面已到达:
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := False;
if (WizardForm.CurPageID >= wpReady) and (PageID < wpReady) then
begin
Result := True;
end;
end;
&#34;准备好安装&#34>上面没有任何后退按钮。页: