Inno Setup 使用 Pascal 脚本自定义 FinishedLabel
Inno Setup customize FinishedLabel with Pascal Script
我使用 Inno Setup 6.x 的目标是自定义代码中的 FinishedLabel
文本,即 Pascal 脚本。我使用 Pascal Script 的原因是如果 IsAdminMode()
为真,我只想 customize/change 标签。我该怎么做?
以下两种方法不起作用:
使用脚本常量:
[Messages]
FinishedLabel={code:GetFinishedLabel}
[Code]
function GetFinishedLabel(Param: String): String;
begin
Result := 'BLA';
end;
这显示“{code:GetFinishedLabel}”而不是“BLA”。
在 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
);
- 考虑到是否创建了图标(
FinishedLabel
对比 FinishedLabelNoIcons
);
- 正在调整标签高度以适合消息;
- 根据消息高度移动
RunList
位置。
我使用 Inno Setup 6.x 的目标是自定义代码中的 FinishedLabel
文本,即 Pascal 脚本。我使用 Pascal Script 的原因是如果 IsAdminMode()
为真,我只想 customize/change 标签。我该怎么做?
以下两种方法不起作用:
使用脚本常量:
[Messages] FinishedLabel={code:GetFinishedLabel}
[Code] function GetFinishedLabel(Param: String): String; begin Result := 'BLA'; end;
这显示“{code:GetFinishedLabel}”而不是“BLA”。
在
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
); - 考虑到是否创建了图标(
FinishedLabel
对比FinishedLabelNoIcons
); - 正在调整标签高度以适合消息;
- 根据消息高度移动
RunList
位置。