Inno Setup 6.x的目标是自定义代码中的FinishedLabel
文本,即Pascal Script。我之所以使用Pascal Script,是因为我只想在IsAdminMode()
为true时自定义/更改标签。我该怎么做?
以下两种方法不起作用:
-
使用脚本常量:
[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
位置