Inno setup 如何向Inno Setup OuterNotebook添加新页面?

Inno setup 如何向Inno Setup OuterNotebook添加新页面?,inno-setup,pascalscript,Inno Setup,Pascalscript,作为使用Inno安装程序的安装程序的一部分,我需要复制wpWelcome,但内容不同。我已经创建了一个TNotebookPage,添加了我想要的图像、面板和内容,并按预期显示。但是,我不知道如何将它添加到我想要的位置的向导表单中。我可以强制它显示为第一页,但单击“下一步/上一步”会使该页消失 如何将笔记本页面插入相关位置的外部笔记本 函数CreatePage:TNewNoteBookPage; 变量 页面:tnewnotebook页面; 开始 页面:=TNewNoteBookPage.Creat

作为使用Inno安装程序的安装程序的一部分,我需要复制
wpWelcome
,但内容不同。我已经创建了一个
TNotebookPage
,添加了我想要的图像、面板和内容,并按预期显示。但是,我不知道如何将它添加到我想要的位置的
向导表单中。我可以强制它显示为第一页,但单击“下一步/上一步”会使该页消失

如何将笔记本页面插入相关位置的
外部笔记本

函数CreatePage:TNewNoteBookPage;
变量
页面:tnewnotebook页面;
开始
页面:=TNewNoteBookPage.Create(向导表单);
page.Notebook:=WizardForm.OuterNotebook;
page.Align:=alClient;
页面颜色:=clWindow;
page.Visible:=真;
结果:=第页;
结束;
程序初始化;
变量
myPage:TNewNoteBookPage;
开始
WizardForm.OuterNotebook.ActivePage:=WizardForm.WelcomePage;
myPage:=CreatePage();
{如何在OuterNotebook中指定页面的位置?}
结束;

通常,可以使用
TNewNotebookPage.PageIndex
指定页面位置。但我担心,通过“手动”修改
OuterNotebook
会破坏Inno设置的内部逻辑


为什么不修改现有的欢迎页面,而不是创建一个新页面

例如,请参见


或者,在
InnerNotebook
上创建自定义页面,但将其展开以覆盖整个窗口


参见

马丁的建议很有帮助,虽然没有直接解决问题,但他们给了我一个想法。我需要的不仅仅是一张覆盖窗户的照片。因此,我的解决方案是创建一个
TNoteBookPage
,我可以根据需要进行格式化,还可以创建一个
TWizardPage
。由于如果不破坏inno安装程序的排序,就无法将notebookpage添加到安装程序中,因此我使用自定义页来维护排序,当自定义页设置为活动时,我将活动页切换为笔记本页,从而显示我需要的内容

[代码]
阿佩奇,特维扎德佩奇;
ANotebookPage:TNewNoteBookPage;
函数CreatePage:TNewNoteBookPage;
变量
页面:tnewnotebook页面;
sideBarImage:TBitmapImage;
面板:TPanel;
开始
{为我们的主要内容创建页面、侧边栏和面板}
页面:=TNewNoteBookPage.Create(向导表单);
page.Notebook:=WizardForm.OuterNotebook;
page.Align:=alClient;
页面颜色:=clWindow;
page.Visible:=真;
{将欢迎页面上已加载的侧栏图像复制到此笔记本页面}
sideBarImage:=TBitmapImage.Create(WizardForm);
sideBarImage.Bitmap:=WizardForm.WizardBitmapImage.Bitmap;
sideBarImage.Top:=WizardForm.WizardBitmapImage.Top;
sideBarImage.Left:=WizardForm.WizardBitmapImage.Left;
sideBarImage.Width:=WizardForm.WizardBitmapImage.Width;
sideBarImage.Height:=WizardForm.WizardBitmapImage.Height;
sideBarImage.BackColor:=WizardForm.WizardBitmapImage.BackColor;
sideBarImage.Parent:=页面;
面板:=TPanel.Create(WizardForm);
panel.Bevelooter:=bvNone;
面板颜色:=clWindow;
panel.Parent:=页;
面板左:=侧边图像宽度+刻度(10);
面板高度:=页面高度;
panel.Width:=page.Width-sideBarImage.Width;
{此时,我们有一个可以填充内容的面板}
结果:=第页
结束
程序初始化;
开始
ANotebookPage:=CreateOneClickInstallPage();
APage:=CreateCustomPage(wpLicense,'安装','');
结束
过程CurPageChanged(CurPageID:Integer);
开始
WizardForm.Bevel1.Visible:=真;
WizardForm.MainPanel.Visible:=真;
WizardForm.InnerNotebook.Visible:=true;
如果CurPageID=APage.ID,则开始
WizardForm.NextButton.Caption:=设置消息(msgButtonInstall)
WizardForm.Bevel1.Visible:=false;
WizardForm.MainPanel.Visible:=false;
WizardForm.InnerNotebook.Visible:=false;
WizardForm.OuterNotebook.ActivePage:=ANoteBookPage;
结束;
结束