6
我決定在我的基於inno-setup的安裝程序中創建自定義嚮導頁面。但我不想從頭開始創建它。我想帶上TInputDirWizardPage並修改它,例如添加一個組合框。可能嗎?怎麼做?Inno-setup:基於現有頁面類型的自定義嚮導頁面
我決定在我的基於inno-setup的安裝程序中創建自定義嚮導頁面。但我不想從頭開始創建它。我想帶上TInputDirWizardPage並修改它,例如添加一個組合框。可能嗎?怎麼做?Inno-setup:基於現有頁面類型的自定義嚮導頁面
我想出了自己。所以我會回答我自己的問題。以下是示例代碼:
[Code]
const DB_PAGE_CAPTION='Select Application Database Folder';
DB_PAGE_DESCRIPTION='Where should application database files be installed or where your database files already are?';
DB_PAGE_SUBCAPTION='In case of new installation select the folder in which Setup should install application database files, then click Next. Or select folder where previous version of application stored database files, then click Next';
var databasePage : TInputDirWizardPage;//this is predefined form declaration
CheckListBox : TNewCheckListBox; //this is new element i'm about to add to page
procedure createDatabaseWizardPage; //creating page
begin
databasePage :=CreateInputDirPage(wpSelectDir,
DB_PAGE_CAPTION,
DB_PAGE_DESCRIPTION,
DB_PAGE_SUBCAPTION,
False, '');
databasePage.Add('');
databasePage.buttons[0].Top:=databasePage.buttons[0].Top+ScaleY(70);//moving predefined
databasePage.edits[0].Top:=databasePage.edits[0].Top+ScaleY(70); //elements down.
databasePage.edits[0].Text:=ExpandConstant('{commonappdata}\my app');//default value
CheckListBox := TNewCheckListBox.Create(databasePage);//creating and modifying new checklistbox
CheckListBox.Top := 40 + ScaleY(8);
CheckListBox.Width := databasePage.SurfaceWidth;
CheckListBox.Height := ScaleY(50);
CheckListBox.BorderStyle := bsNone;
CheckListBox.ParentColor := True;
CheckListBox.MinItemHeight := WizardForm.TasksList.MinItemHeight;
CheckListBox.ShowLines := False;
CheckListBox.WantTabs := True;
CheckListBox.Parent := databasePage.Surface;//setting control's parent element
CheckListBox.AddRadioButton('New Installation', '', 0, True, True, nil);
CheckListBox.AddRadioButton('Update existing copy', '', 0, False, True, nil);
end;
procedure InitializeWizard;
begin
createDatabaseWizardPage();
end;
謝謝大家! :-)
感謝您分享您的解決方案,非常有幫助! – reiniero 2012-08-12 13:28:56