Inno Setup - Показать MsgBox и нажать «ОК», чтобы вернуться на предыдущую страницу. - PullRequest
2 голосов
/ 22 марта 2019

У меня есть страница "A" TOutputMsgWizardPage и страница "B" TInputQueryWizardPage.

Когда я нажимаю кнопку «Далее» на странице B, отображается MsgBox, включая кнопки «ОК» и «Отмена». Когда я нажимаю «ОК», возвращаюсь на страницу «А».

Может ли это случиться?

Какие-нибудь советы, как мне этого добиться?

Последовательность страниц: WelcomePage => OutputMsgPage => InputQueryPage => SelectDirPage

1 Ответ

1 голос
/ 22 марта 2019

Используйте TWizardPage.OnNextButtonClick для обработки «Далее» нажатий кнопки.

При обработке кнопки «Далее» вы можете имитировать нажатие на Кнопка «Назад» для возврата на предыдущую страницу.

[Code]

var
  OutputMsgPage: TOutputMsgWizardPage;
  InputQueryPage: TInputQueryWizardPage;

function InputQueryPageNextButtonClick(Sender: TWizardPage): Boolean;
begin
  Result := True;

  if MsgBox('Go back?', mbConfirmation, MB_OKCANCEL) = IDOK then
  begin
    WizardForm.BackButton.OnClick(WizardForm.BackButton);

    Result := False;
  end;
end;

procedure InitializeWizard();
begin
  OutputMsgPage := CreateOutputMsgPage(wpWelcome, 'Output page', '', 'Output page');

  InputQueryPage := CreateInputQueryPage(OutputMsgPage.ID, 'Input page', '', 'Input page');
  InputQueryPage.OnNextButtonClick := @InputQueryPageNextButtonClick;
end;
...