我必须为数据库构建一个安装例程。到目前为止,创建这一堆代码非常容易(感谢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;
我非常清楚这个功能是如何运作的。但是如何访问前几页的值?我可以将它们存储在变量或其他内容中吗?我无法找到一些东西,也许我只是失明或白痴。
如果有人可以帮助我,我会非常感激。
问候