Inno Setup使用Pascal Script自定义FinishedLabel



Inno Setup 6.x的目标是自定义代码中的FinishedLabel文本,即Pascal Script。我之所以使用Pascal Script,是因为我只想在IsAdminMode()为true时自定义/更改标签。我该怎么做?

以下两种方法不起作用:

  1. 使用脚本常量:

    [Messages]
    FinishedLabel={code:GetFinishedLabel}
    
    [Code]
    function GetFinishedLabel(Param: String): String;
    begin
    Result := 'BLA';
    end;
    

    这显示了";{code:GetFinishedLabel}"而不是";BLA";。

  2. InitializeWizard中自定义向导。

    完整(失败(示例:

    [Code]
    procedure InitializeWizard();
    begin
    WizardForm.FinishedLabel.Caption := 'BLA';
    end;
    

    FinishLabel仍然显示来自Default.isl的原始文本

有什么想法吗?

FinishedLabel在安装结束时会根据各种因素进行更新。因此,您在InitializeWizard中设置的值将被覆盖。您必须稍后设置自定义消息,例如在CurPageChanged(wpFinished):中

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpFinished then
begin
WizardForm.FinishedLabel.Caption := 'BLA';
end;
end;

您可以考虑改进代码,以执行Inno Setup的操作,例如:

  • 如果需要重新启动,请考虑(FinishedRestartLabel(
  • 考虑到,如果创建了图标(FinishedLabelFinishedLabelNoIcons(
  • 调整标签高度以适应消息
  • 根据消息高度移动RunList位置

相关内容

  • 没有找到相关文章

最新更新