Как я могу добавить флажок для дополнительных файлов во время установки в Inno Setup?

Я пытаюсь сделать настраиваемый флажок на 9X_pascalscript своей настраиваемой странице (потому что 9X_pascalscript это одностраничный установщик), нужен только 9X_inno-setup флажок без диалогов или чего-либо еще, установщик, который 9X_inno-setup я пытаюсь скомпилировать, очень линейный 9X_inno-setup и простой.

Я хочу привязать FILE3.EXE к флажку таким 9X_pascalscript образом: если флажок установлен, скопируйте 9X_inno-setup файл (FILE3.EXE) в DestDir, в противном случае, если флажок 9X_inno-setup не установлен, пропустите файл (FILE3.EXE) во время 9X_inno-setup установки.

Это код, который я использовал, очевидно, что 9X_pascalscript код флажка отсутствует, потому что я не 9X_inno-setup могу это сделать

[Files] Source: FILE1.EXE; DestDir: {app}; Source: FILE2.EXE; DestDir: {app}; Source: FILE3.EXE; DestDir: {app}; //OPTIONAL 
[Code] procedure ExitProcess(uExitCode: UINT); external '[email protected] stdcall'; var MainPage : TWizardPage; FolderToInstall : TEdit; InstallLocation : String; procedure CancelClick(Sender: TObject); begin if ExitSetupMsgBox then begin ExitProcess(0); end; end; procedure BrowseClick(Sender : TObject); var Dir : String; begin Dir := FolderToInstall.Text; if BrowseForFolder('Browse',Dir,false) then FolderToInstall.Text := Dir; WizardForm.DirEdit.Text := Dir; end; procedure InitializeWizard(); var LabelFolder : TLabel; begin MainPage := CreateCustomPage(wpWelcome,'',''); LabelFolder := TLabel.Create(MainPage); LabelFolder.Parent := WizardForm; LabelFolder.Top := 164; LabelFolder.Left := 6; LabelFolder.Caption := 'Directory:' FolderToInstall := TEdit.Create(MainPage); FolderToInstall.Parent := WizardForm; FolderToInstall.Top := 182; FolderToInstall.Left := 85; FolderToInstall.Width := 380; FolderToInstall.Text := WizardDirValue; FolderToInstall.ReadOnly := True; end; 

13
3

  • Вы хотите иметь полное индивидуальное решение или хотите использовать уже встроенные функ ...
4
Общее количество ответов: 4

Ответ #1

Ответ на вопрос: Как я могу добавить флажок для дополнительных файлов во время установки в Inno Setup?

Для этого не нужно вручную создавать флажки. Стандартный 9X_inno-setup способ предоставить пользователю возможность 9X_inno-setup выбирать, что установить, - использовать 9X_inno-setup разделы [Types] и [Components] в файле сценария.

Взгляните на 9X_pascalscript сценарий Components.iss, расположенный в папке установки 9X_inno-setup Inno Setup \ examples.

; -- Components.iss -- ; Demonstrates a components-based installation. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES! [Setup] AppName=My Program AppVersion=1.5 DefaultDirName={pf}\My Program DefaultGroupName=My Program UninstallDisplayIcon={app}\MyProg.exe OutputDir=userdocs:Inno Setup Examples Output [Types] Name: "full"; Description: "Full installation" Name: "compact"; Description: "Compact installation" Name: "custom"; Description: "Custom installation"; Flags: iscustom [Components] Name: "program"; Description: "Program Files"; Types: full compact custom; Flags: fixed Name: "help"; Description: "Help File"; Types: full Name: "readme"; Description: "Readme File"; Types: full Name: "readme\en"; Description: "English"; Flags: exclusive Name: "readme\de"; Description: "German"; Flags: exclusive [Files] Source: "MyProg.exe"; DestDir: "{app}"; Components: program Source: "MyProg.chm"; DestDir: "{app}"; Components: help Source: "Readme.txt"; DestDir: "{app}"; Components: readme\en; Flags: isreadme Source: "Readme-German.txt"; DestName: "Liesmich.txt"; DestDir: "{app}"; Components: readme\de; Flags: isreadme [Icons] Name: "{group}\My Program"; Filename: "{app}\MyProg.exe" 

Во время выполнения 9X_inno-setup установщик представляет этот диалог в мастере:

9X_Как я могу добавить флажок для дополнительных файлов во время установки в Inno Setup?_inno-setup

31
1

  • @Globulorozzo В своем вопросе вы должны указать, что важная информация, желать, чтобы все "видели в коде", не ...

Ответ #2

Ответ на вопрос: Как я могу добавить флажок для дополнительных файлов во время установки в Inno Setup?

Вам необходимо создать функцию Check, которая 9X_inno-setup будет возвращать состояние флажка из раздела 9X_inno-setup [Code] вашего скрипта. Что-то вроде этого может 9X_pascalscript сделать то, что вы хотите, но перед сценарием 9X_inno-setup кода я бы исправил вас следующим образом:

  • используйте классы TNew ... там, где это возможно, поэтому в вашем случае используйте TNewEdit вместо TEdit
  • используйте TWizardPage.Surface в качестве Parent, если вы хотите, чтобы на странице был определенный компонент (здесь я не уверен, что это ваше намерение, просто указываю на это :-)
  • отформатируйте код, он не должен быть таким плоским

В 9X_pascalscript следующем примере я использовал функцию 9X_inno-setup Check с именем InstallHelpFile для условной установки определенного 9X_inno-setup файла, в данном случае MyProg.chm. Функция Check работает 9X_inno-setup просто; когда вы возвращаете True функции, файл 9X_inno-setup обрабатывается, пропускается, когда вы возвращаете 9X_inno-setup False.

[Setup] AppName=My Program AppVersion=1.5 DefaultDirName={pf}\My Program OutputDir=userdocs:Inno Setup Examples Output [Files] Source: "MyProg.exe"; DestDir: "{app}" Source: "MyProg.chm"; DestDir: "{app}"; Check: InstallHelpFile; 
[Code] var InstallHelpCheckBox: TNewCheckBox; procedure InitializeWizard; var LabelFolder: TLabel; MainPage: TWizardPage; FolderToInstall: TNewEdit; begin MainPage := CreateCustomPage(wpWelcome, '', ''); LabelFolder := TLabel.Create(MainPage); LabelFolder.Parent := WizardForm; LabelFolder.Top := 164; LabelFolder.Left := 6; LabelFolder.Caption := 'Directory:' FolderToInstall := TNewEdit.Create(MainPage); FolderToInstall.Parent := MainPage.Surface; FolderToInstall.Top := 182; FolderToInstall.Left := 85; FolderToInstall.Width := 380; FolderToInstall.Text := WizardDirValue; FolderToInstall.ReadOnly := True; InstallHelpCheckBox := TNewCheckBox.Create(MainPage); InstallHelpCheckBox.Parent := MainPage.Surface; InstallHelpCheckBox.Top := FolderToInstall.Top + FolderToInstall.Height + 8; InstallHelpCheckBox.Left := FolderToInstall.Left; InstallHelpCheckBox.Width := FolderToInstall.Width; InstallHelpCheckBox.Caption := 'Install help file'; end; function InstallHelpFile: Boolean; begin { here is the Check function used above; if you return True to this } { function, the file will be installed, when False, the file won't } { be installed } Result := InstallHelpCheckBox.Checked; end; 

18
0

Ответ #3

Ответ на вопрос: Как я могу добавить флажок для дополнительных файлов во время установки в Inno Setup?

Вы можете сделать это намного проще с помощью 9X_inno-setup CreateInputOptionPage(). См. Подробную информацию 9X_pascalscript в справке по Inno Setup. http://www.jrsoftware.org/ishelp/index.php?topic=scriptpages

4
0

Ответ #4

Ответ на вопрос: Как я могу добавить флажок для дополнительных файлов во время установки в Inno Setup?

// Create: for i := 0 to g_SetupX_Count do begin WizardForm.ComponentsList.AddCheckBox(g_SetupX_Name[i], '', 0, g_SetupX_Active[i], true, false, false, nil); g_SetupX_CompListIndex[i] := nextPosi; nextPosi := nextPosi + 1; end; // Evaluate: for i := 0 to g_SetupX_Count do begin g_SetupX_Active[i] := WizardForm.ComponentsList.Checked[g_SetupX_CompListIndex[i]]; end; 
9X_inno-setup
1
0