PM2
PM2

Reputation: 327

Inno Setup: How to change Messages at runtime?

I need to change Messages at runtime. I have a AfterInstall procedure that checks to see if a bat file was successful. If it is not, I want to change the value of ExitSetupMessage just before calling WizardForm.Close. I was hoping to do something like this english.ExitSetupMessage := 'THIS IS THE PART THAT DOES NOT WORK';. Code examples would be appreciated. Thank you.

[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;

Upvotes: 3

Views: 3280

Answers (2)

Aivar
Aivar

Reputation: 7012

According to http://www.jrsoftware.org/ishelp/index.php?topic=scriptclasses

it should be

WizardForm.FinishedLabel.Caption := 'Desired text goes here';

Upvotes: 0

Robert Love
Robert Love

Reputation: 12581

I don't know of a way to change the messages at runtime.

However in the case you posted I know of a workaround. You would set your CustomState before calling WizardForm.Close

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;

The side effect is you lose the Exit Setup? title of the dialog box.

You can use function ExitSetupMsgBox: Boolean; when you don't want to change the message to keep the title around.

Upvotes: 1

Related Questions