2010-11-30 14 views
5

インストール場所を選択したページの後にカスタムウィザードページを作成したいと思います。Innoセットアップカスタムページ

私はカスタムページを作成し、InitializeWizard手順でウィザードに追加する方法を見てきました。

私の問題は、カスタムページを作成すると、インストール先の選択のためのデフォルトページが表示されなくなることです。

デフォルトのページ(インストール先の選択)を維持し、新しいカスタムページを追加するにはどのようなオプションが必要ですか?

おかげ

私のコードは、この(INNOによって提供さCodeClasses.iss例)のようになります。

procedure CreateTheWizardPages; 
var 
    Page: TWizardPage; 
    Button, FormButton: TButton; 
    CheckBox: TCheckBox; 
    Edit: TEdit; 
    PasswordEdit: TPasswordEdit; 
    Memo: TMemo; 
    Lbl, ProgressBarLabel: TLabel; 
    ComboBox: TComboBox; 
    ListBox: TListBox; 
    StaticText: TNewStaticText; 
    ProgressBar: TNewProgressBar; 
    CheckListBox, CheckListBox2: TNewCheckListBox; 
    FolderTreeView: TFolderTreeView; 
    BitmapImage, BitmapImage2, BitmapImage3: TBitmapImage; 
    BitmapFileName: String; 
    RichEditViewer: TRichEditViewer; 
begin 
    { TButton and others } 

    Page := CreateCustomPage(wpWelcome, 'Custom wizard page controls', 'TButton and others'); 

    Button := TButton.Create(Page); 
    Button.Width := ScaleX(75); 
    Button.Height := ScaleY(23); 
    Button.Caption := 'TButton'; 
    Button.OnClick := @ButtonOnClick; 
    Button.Parent := Page.Surface; 

    CheckBox := TCheckBox.Create(Page); 
    CheckBox.Top := Button.Top + Button.Height + ScaleY(8); 
    CheckBox.Width := Page.SurfaceWidth; 
    CheckBox.Height := ScaleY(17); 
    CheckBox.Caption := 'TCheckBox'; 
    CheckBox.Checked := True; 
    CheckBox.Parent := Page.Surface; 

    Edit := TEdit.Create(Page); 
    Edit.Top := CheckBox.Top + CheckBox.Height + ScaleY(8); 
    Edit.Width := Page.SurfaceWidth div 2 - ScaleX(8); 
    Edit.Text := 'TEdit'; 
    Edit.Parent := Page.Surface; 

    PasswordEdit := TPasswordEdit.Create(Page); 
    PasswordEdit.Left := Page.SurfaceWidth - Edit.Width; 
    PasswordEdit.Top := CheckBox.Top + CheckBox.Height + ScaleY(8); 
    PasswordEdit.Width := Edit.Width; 
    PasswordEdit.Text := 'TPasswordEdit'; 
    PasswordEdit.Parent := Page.Surface; 

    Memo := TMemo.Create(Page); 
    Memo.Top := Edit.Top + Edit.Height + ScaleY(8); 
    Memo.Width := Page.SurfaceWidth; 
    Memo.Height := ScaleY(89); 
    Memo.ScrollBars := ssVertical; 
    Memo.Text := 'TMemo'; 
    Memo.Parent := Page.Surface; 

    Lbl := TLabel.Create(Page); 
    Lbl.Top := Memo.Top + Memo.Height + ScaleY(8); 
    Lbl.Caption := 'TLabel'; 
    Lbl.AutoSize := True; 
    Lbl.Parent := Page.Surface; 

    FormButton := TButton.Create(Page); 
    FormButton.Top := Lbl.Top + Lbl.Height + ScaleY(8); 
    FormButton.Width := ScaleX(75); 
    FormButton.Height := ScaleY(23); 
    FormButton.Caption := 'TSetupForm'; 
    FormButton.OnClick := @FormButtonOnClick; 
    FormButton.Parent := Page.Surface; 

......

procedure InitializeWizard(); 
var 
    AboutButton, CancelButton: TButton; 
    URLLabel: TNewStaticText; 
    BackgroundBitmapImage: TBitmapImage; 
    BackgroundBitmapText: TNewStaticText; 
begin 
    { Custom wizard pages } 

    CreateTheWizardPages; 

    { Other custom controls } 

    CancelButton := WizardForm.CancelButton; 

    AboutButton := TButton.Create(WizardForm); 
    AboutButton.Left := WizardForm.ClientWidth - CancelButton.Left - CancelButton.Width; 
    AboutButton.Top := CancelButton.Top; 
    AboutButton.Width := CancelButton.Width; 
    AboutButton.Height := CancelButton.Height; 
    AboutButton.Caption := '&About...'; 
    AboutButton.OnClick := @AboutButtonOnClick; 
    AboutButton.Parent := WizardForm; 

    URLLabel := TNewStaticText.Create(WizardForm); 
    URLLabel.Caption := 'www.innosetup.com'; 
    URLLabel.Cursor := crHand; 
    URLLabel.OnClick := @URLLabelOnClick; 
    URLLabel.Parent := WizardForm; 
    { Alter Font *after* setting Parent so the correct defaults are inherited first } 
    URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline]; 
    URLLabel.Font.Color := clBlue; 
    URLLabel.Top := AboutButton.Top + AboutButton.Height - URLLabel.Height - 2; 
    URLLabel.Left := AboutButton.Left + AboutButton.Width + ScaleX(20); 

    BackgroundBitmapImage := TBitmapImage.Create(MainForm); 
    BackgroundBitmapImage.Left := 50; 
    BackgroundBitmapImage.Top := 90; 
    BackgroundBitmapImage.AutoSize := True; 
    BackgroundBitmapImage.Bitmap := WizardForm.WizardBitmapImage.Bitmap; 
    BackgroundBitmapImage.Parent := MainForm; 

    BackgroundBitmapText := TNewStaticText.Create(MainForm); 
    BackgroundBitmapText.Left := BackgroundBitmapImage.Left; 
    BackgroundBitmapText.Top := BackgroundBitmapImage.Top + BackgroundBitmapImage.Height + ScaleY(8); 
    BackgroundBitmapText.Caption := 'TBitmapImage'; 
    BackgroundBitmapText.Parent := MainForm; 
end; 

答えて

6

最初のパラメータwpWelcomeでこの場合、魔法使いページの後に私たちのカスタムページが表示されます。

Page := CreateCustomPage(wpWelcome, 'Custom wizard page controls', 'TButton and others'); 
+0

非常に明確な答えではありません。元のページが表示されない理由、または元のページを戻す方法を実際には示しません。 – Nyerguds

関連する問題