2010-11-30 17 views
5

Ich möchte eine benutzerdefinierte Assistentenseite nach der Seite erstellen, wo Sie den Installationsort auswählen.Inno Setup benutzerdefinierte Seite

Ich habe gesehen, wie Sie benutzerdefinierte Seiten erstellen und sie dem Assistenten in der InitializeWizard Prozedur hinzufügen.

Mein Problem ist, dass beim Erstellen einer benutzerdefinierten Seite die Standardseite für die Auswahl des Installationsorts nicht mehr angezeigt wird.

Welche Optionen muss ich haben, um die Standardseite (Auswahl des Installationsorts) beizubehalten und auch eine neue benutzerdefinierte Seite hinzuzufügen?

Dank

Mein Code sieht so etwas wie dieses (CodeClasses.iss Beispiel durch inno zur Verfügung gestellt):

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; 

Antwort

6

Der erste Parameter wpWelcome in Dieser Fall gibt an, nach welcher Seite unsere benutzerdefinierte Seite angezeigt wird.

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

Keine sehr klare Antwort; Das sagt nicht wirklich, warum die Originalseite nicht angezeigt wird oder wie man sie zurückbekommt. – Nyerguds

Verwandte Themen