Inno Setup:如何在运行时更改消息?

| 我需要在运行时更改消息。我有一个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;
副作用是您丢失对话框的“ 3”标题。 当您不想更改信息时,可以使用
function ExitSetupMsgBox: Boolean;
保持标题。     
        根据http://www.jrsoftware.org/ishelp/index.php?topic=scriptclasses 它应该是
WizardForm.FinishedLabel.Caption := \'Desired text goes here\';
    

要回复问题请先登录注册