Hacemos una verificación profunda cada sección en nuestro espacio con el objetivo de enseñarte siempre la información más veraz y certera.
Solución:
No tiene que crear casillas de verificación manualmente para eso. La forma estándar de permitir que el usuario elija qué instalar es usar el [Types]
y [Components]
secciones de su archivo de script.
Echa un vistazo a la Components.iss
script ubicado en la carpeta de instalación de Inno Setupexamples.
; -- 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=pfMy Program
DefaultGroupName=My Program
UninstallDisplayIcon=appMyProg.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: "readmeen"; Description: "English"; Flags: exclusive
Name: "readmede"; 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: readmeen; Flags: isreadme
Source: "Readme-German.txt"; DestName: "Liesmich.txt"; DestDir: "app"; Components: readmede; Flags: isreadme
[Icons]
Name: "groupMy Program"; Filename: "appMyProg.exe"
En tiempo de ejecución, el instalador presenta este cuadro de diálogo dentro del asistente:
Necesitas hacer un Check
función que devolverá el estado de la casilla de verificación de la [Code]
sección de su guión. Algo como esto podría hacer lo que quieras, pero antes del script de código te corregiría en lo siguiente:
- usar Nuevo… clases donde puedas, así que en tu caso usa
TNewEdit
en vez deTEdit
- usar
TWizardPage.Surface
como unParent
si desea tener un determinado componente en la página (aquí no estoy seguro si esa es su intención, solo señale esto 🙂 - formatea tu código, no necesita ser tan plano
En el siguiente ejemplo he usado Check
función llamada InstallHelpFile
para la instalación condicional de un determinado archivo, en este caso MyProg.chm
. Él Check
la función funciona simplemente; cuando devuelve True a la función, el archivo se procesa, se omite cuando devuelve False.
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName=pfMy 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;
Puede hacerlo mucho más fácil con CreateInputOptionPage(). Consulte información detallada en la ayuda de Inno Setup. http://www.jrsoftware.org/ishelp/index.php?topic=scriptpages
Te invitamos a secundar nuestro trabajo dejando un comentario o dejando una puntuación te estamos agradecidos.