Inno Setup:如何从自定义向导页面获取返回值?

时间:2016-12-15 12:22:20

标签: inno-setup wizard

我必须为数据库构建一个安装例程。到目前为止,创建这一堆代码非常容易(感谢Inno Script Studio)。

现在我必须询问安装我们软件的用户,他想要使用哪种authentication模式( Windows NT / SQL Server身份验证)。之后(选择了IF SQL Server身份验证),应该会出现另一个自定义向导页面,该页面会询问用户odbc名称,服务器名称,用户和密码(以创建.ini文件)。

我设法让自定义向导页面使用以下代码:

[Code]
var
  LightMsgPage: TOutputMsgWizardPage;
  AskAuthPage: TInputOptionWizardPage;
  ServerDataPage: TInputQueryWizardPage;

procedure InitializeWizard;
begin
  { Create the pages }
  LightMsgPage:= CreateOutputMsgPage(wpWelcome,
    'XXXXXXX', 'XXXXXXX',
    'XXXXXXX ' +
    'XXXXXXX.');

  AskAuthPage := CreateInputOptionPage(LightMsgPage.ID,
    'XXXXXXX', 'XXXXXXX',
    'XXXXXXX',
    True, False);
  AskAuthPage.Add('XXXXXXX');
  AskAuthPage.Add('XXXXXXX');

  ServerDataPage := CreateInputQueryPage(AskAuthPage.ID,
    'XXXXXXX', '',
    'XXXXXXX');
  ServerDataPage.Add('ODBC Name:', False);
  ServerDataPage.Add('Server Name:', False);
  ServerDataPage.Add('User:', False);
  ServerDataPage.Add('Password:', False);
end;

首先,当我开始例程时,我得到了一条“欢迎消息”#34; (LightMsgPage)。如果单击“下一步”,我将使用两个选项按钮(AskAuthPage)进入页面。

这里开始出现问题: 如果我选择选项1,它应跳过 ServerDataPage 并直接进入可在hdd设置安装路径的页面。 如果我选择选项2,则应显示 ServerDataPage 及其输入字段。

我从Inno安装示例中了解到,可以跳过页面:

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  { Skip pages that shouldn't be shown }
  if (PageID = LightMsgPage.ID) and (UsagePage.SelectedValueIndex <> 0) then
    Result := True
  else if (PageID = KeyPage.ID) and (UsagePage.SelectedValueIndex <> 2) then
    Result := True
  else
    Result := False;
end; 

我非常清楚这个功能是如何运作的。但是如何访问前几页的值?我可以将它们存储在变量或其他内容中吗?我无法找到一些东西,也许我只是失明或白痴。

如果有人可以帮助我,我会非常感激。

问候

0 个答案:

没有答案