Installation Inno设置:基于现有页面类型的自定义向导页面

Installation Inno设置:基于现有页面类型的自定义向导页面,installation,inno-setup,wizard,pascalscript,Installation,Inno Setup,Wizard,Pascalscript,我决定在基于inno安装程序的安装程序中创建自定义向导页。但我不想从头开始创建它。我想使用TInputDirWizardPage并对其进行修改,例如添加一个组合框。可能吗?怎么做?我自己想出来的。所以我会回答我自己的问题。下面是示例代码: [Code] const DB_PAGE_CAPTION='Select Application Database Folder'; DB_PAGE_DESCRIPTION='Where should application database files

我决定在基于inno安装程序的安装程序中创建自定义向导页。但我不想从头开始创建它。我想使用TInputDirWizardPage并对其进行修改,例如添加一个组合框。可能吗?怎么做?

我自己想出来的。所以我会回答我自己的问题。下面是示例代码:

[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;

谢谢大家!:-)

感谢分享您的解决方案,非常有帮助!