2017-11-27 36 views
1

私はInno Setupを使用しているインストーラの一部として、wpWelcomeのページを複製する必要がありますが、内容は異なります。 TNotebookPageを作成し、画像、パネル、コンテンツを追加して、期待通りに表示します。しかし、私はそれが私が望む場所でWizardFormにどのように追加するか分からない。私はそれを最初のページとして表示させることができますが、次へ/次へのシフトをクリックするとページが消えます。Inno Setup OuterNotebookに新しいページを追加するには?

OuterNotebookのノートブックページを関連する位置に挿入するにはどうすればよいですか?

答えて

0

マーティンの提案は直接、彼らは私にアイデアを与えた問題を解決するものではないが、非常に有用だった参照してください。私は窓を覆うイメージ以上のものが必要でした。したがって、私の解決策は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 
1

一般に、TNewNotebookPage.PageIndexを使用してページの位置を指定します。しかし、私は恐らくOuterNotebookを "手動で"修正することで、Inno Setupの内部ロジックを壊してしまうのではないかと心配しています。


新しいウェルを作成するのではなく、既存のウェルカムページを変更するだけですか?

たとえば、Custom Welcome and Finished page with stretched image in Inno Setupを参照してください。


また、InnerNotebook上のカスタムページを作成するのではなく、ウィンドウ全体をカバーするために、それを展開します。

How to hide the main panel and show an image over the whole page?

関連する問題