Inno Setup: Как изменить сообщения во время выполнения? - PullRequest
2 голосов
/ 14 июня 2011

Мне нужно изменить сообщения во время выполнения.У меня есть процедура AfterInstall, которая проверяет, был ли файл bat успешным.Если это не так, я хочу изменить значение ExitSetupMessage непосредственно перед вызовом WizardForm.Close.Я надеялся сделать что-то вроде этого 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;

Ответы [ 2 ]

1 голос
/ 14 июня 2011

Я не знаю, как изменить сообщения во время выполнения.

Однако в случае, когда вы отправили сообщение, я знаю обходной путь.Вы должны установить свой CustomState перед вызовом 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;

Побочным эффектом является потеря заголовка Exit Setup? диалогового окна.не хочу изменять сообщение, чтобы сохранить заголовок.

0 голосов
/ 14 июля 2018

По http://www.jrsoftware.org/ishelp/index.php?topic=scriptclasses

должно быть

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