Многие программы имеют отдельные папки с проектами. Эти папки указываются либо программой, либо программой установки. Мы попытаемся сделать страничку, где пользователю будет предложено выбрать путь к папке с проектами. Помимо создаваемой папки, инсталлятор пропишет в реестр (нужно знать программе) путь ее расположения. [Dirs] ;Создание указанной папки, которую не будем деинсталлировать в дальнейшем Name: {code:GetDataDir}; Flags: uninsneveruninstall [Registry] ;Пример записи указанной папки в реестр Root: HKCU; Subkey: "Software\Indigo Rose\AutoPlay Media Studio 6.0"; ValueType: string; ValueName: "InstallProjectsFolder"; ValueData: "{code:GetDataDir}" [Code] //Определяем дополнительную страницу (с кнопкой «Обзор…») var DataDirPage: TInputDirWizardPage; procedure InitializeWizard(); begin //Создание дополнительной страницы после указанной wpSelectProgramGroup DataDirPage := CreateInputDirPage(wpSelectProgramGroup, 'Выбор папки с проектами', 'В какой папке будут находиться ваши проекты?', 'Пожалуйста, укажите папку, в которой будут сохранены проекты программы.'#13#13'Путь к папке с проектами может быть изменен в "Правка">"Предпочтения".', False, ''); DataDirPage.Add(''); DataDirPage.Values[0] := GetPreviousData('DataDir', ''); end; function NextButtonClick(CurPage: Integer): Boolean; begin if DataDirPage.Values[0] = '' then //Указываем путь папки с проектами по умолчанию DataDirPage.Values[0] := (ExpandConstant('{userdocs}')+'\AutoPlay Media Studio 6.0 Projects'); Result := True; end; function GetDataDir(Param: String): String; begin Result := DataDirPage.Values[0]; end; //Это страница, в которой отображаются выбранные параметры установки //Чтобы в нее прописать указанный путь установки папки с проектами, пишем следующую функцию //По необходимости указываем дополнительные параметры установки (компоненты и т.п.) function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String; var S: String; begin S := S + MemoDirInfo; S := S + NewLine + NewLine; S := S + MemoGroupInfo; S := S + NewLine + NewLine; S := S + 'Папка с проектами:' + NewLine + Space; S := S + DataDirPage.Values[0]; S := S + NewLine + NewLine; S := S + MemoTasksInfo; Result := S; end; |