gpt4 book ai didi

inno-setup - Inno Setup 使用 Pascal 脚本自定义 FinishedLabel

转载 作者:行者123 更新时间:2023-12-04 08:47:42 27 4
gpt4 key购买 nike

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

以下两种方法不起作用:

  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 位置。

关于inno-setup - Inno Setup 使用 Pascal 脚本自定义 FinishedLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64224627/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com