![](/img/trans.png)
[英]Inno Setup: how to make a change option on “Uninstall or change a program”
[英]Inno Setup: How to change Messages at runtime?
我需要在运行时更改消息。 我有一个 AfterInstall 过程,用于检查 bat 文件是否成功。 如果不是,我想在调用 WizardForm.Close 之前更改 ExitSetupMessage 的值。 我希望做这样的事情 english.ExitSetupMessage:= '这是不起作用的部分';。 代码示例将不胜感激。 谢谢你。
[Languages]
Name: english; MessagesFile: compiler:Default.isl
[Files]
Source: {src}\test.bat; DestDir: {tmp}; AfterInstall: ValidateInstall
[Code]
procedure ValidateInstall();
var
ResultCode : Integer;
begin
if not Exec(ExpandConstant('{tmp}\test.bat'), '', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then
begin
english.ExitSetupMessage := 'THIS IS THE PART THAT DOES NOT WORK';
WizardForm.Close;
end;
end;
我不知道在运行时更改消息的方法。
但是,在您发布的情况下,我知道一种解决方法。 您将在调用WizardForm.Close
之前设置您的 CustomState
var
CustomState : Boolean;
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
var
Msg : String;
Res : Integer;
begin
Confirm := False; // Don't show the default dialog.
// Chose which message the custom or default message.
if CustomState then
Msg := 'My Custom Close Message'
else
Msg := SetupMessage(msgExitSetupMessage);
//as the Question
Res := MsgBox(Msg, mbConfirmation,MB_OKCANCEL);
// If they press OK then Cancel the install
Cancel := (Res = IDOK);
end;
副作用是您丢失了Exit Setup?
对话框的标题。
您可以使用function ExitSetupMsgBox: Boolean;
当您不想更改消息以保留标题时。
根据http://www.jrsoftware.org/ishelp/index.php?topic=scriptclasses
它应该是
WizardForm.FinishedLabel.Caption := 'Desired text goes here';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.