マーティンの提案は直接、彼らは私にアイデアを与えた問題を解決するものではないが、非常に有用だった参照してください。私は窓を覆うイメージ以上のものが必要でした。したがって、私の解決策はTNoteBookPage
を作成し、必要に応じてフォーマットすることができ、TWizardPage
も作成することでした。 inno-setupの順序を壊さずにノートブックページをインストーラに追加することはできなかったので、カスタムページを使用して注文を維持し、CustomPageがアクティブに設定されたときにアクティブページをノートページに切り替えました。
[Code]
Apage, TWizardPage;
ANotebookPage: TNewNoteBookPage;
function CreatePage: TNewNoteBookPage;
var
page: TNewNoteBookPage;
sideBarImage: TBitmapImage;
panel: TPanel;
begin
{create page, sidebar and panel for our main content}
page := TNewNoteBookPage.Create(WizardForm);
page.Notebook := WizardForm.OuterNotebook;
page.Align := alClient;
page.Color := clWindow;
page.Visible:= True;
{ copies the already loaded sidebar image on the welcome page to this notebook page}
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 := page;
panel := TPanel.Create(WizardForm);
panel.BevelOuter := bvNone;
panel.Color := clWindow;
panel.Parent := page;
panel.Left := sideBarImage.Width + ScaleX(10);
panel.Height := page.Height;
panel.Width := page.Width - sideBarImage.Width;
{ at this point we have a panel we can populate with content }
Result := page
end
procedure InitializeWizard;
begin
ANotebookPage := CreateOneClickInstallPage();
APage := CreateCustomPage(wpLicense, 'Install', '');
end
procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.Bevel1.Visible := true;
WizardForm.MainPanel.Visible := true;
WizardForm.InnerNotebook.Visible := true;
if CurPageID = APage.ID then begin
WizardForm.NextButton.Caption := SetupMessage(msgButtonInstall)
WizardForm.Bevel1.Visible := false;
WizardForm.MainPanel.Visible := false;
WizardForm.InnerNotebook.Visible := false;
WizardForm.OuterNotebook.ActivePage := ANoteBookPage;
end;
end