Comment lire et définir la valeur d'une case à cocher dans un InnoSetup page de l'assistant?
J'ai ajouté une case à cocher pour les "Autres Tâches" page d'une InnoSetup script avec
[Tasks]
Name: "StartMenuEntry" ; Description: "Start my app when Windows starts" ; GroupDescription: "Windows Startup"; MinVersion: 4,4;
Je veux initialiser cette case à cocher lorsque le wpSelectTasks
page montre, et de lire la valeur lorsque le Next
bouton est cliqué. Je ne peux pas savoir comment accéder à la case coché la case " valeur.
function NextButtonClick(CurPageID: Integer): Boolean;
var
SelectTasksPage : TWizardPage ;
StartupCheckbox : TCheckbox ;
begin
Result := true ;
case CurPageID of
wpSelectTasks :
begin
SelectTasksPage := PageFromID (wpSelectTasks) ;
StartupCheckbox := TCheckbox (SelectTasksPage... { <== what goes here??? }
StartupCheckboxState := StartupCheckbox.Checked ;
end ;
end ;
end ;
Normalement, vous n'avez pas besoin d'. Vous suffit d'inclure la "Tâche" paramètre de la tâche spécifique dans les entrées de registre impliqué avec démarrage automatique.
Merci @Sertac, Oui je me rends compte que, mais je veux que l'état de la case à être initialisé à partir d'un paramètre de ligne de commande lorsque le programme d'installation est appelé, et je veux être en mesure d'enregistrer l'état d'après la page de l'assistant, donc je peux l'utiliser pour influencer le comportement des plus tard scripts. En Plus, c'est quelque chose que je veux savoir comment le faire, en général...
Merci @Sertac, Oui je me rends compte que, mais je veux que l'état de la case à être initialisé à partir d'un paramètre de ligne de commande lorsque le programme d'installation est appelé, et je veux être en mesure d'enregistrer l'état d'après la page de l'assistant, donc je peux l'utiliser pour influencer le comportement des plus tard scripts. En Plus, c'est quelque chose que je veux savoir comment le faire, en général...
OriginalL'auteur rossmcm | 2012-05-07
Vous devez vous connecter pour publier un commentaire.
Le groupe de cases à cocher sont en fait des objets dans le
WizardForm.TasksList
cocher zone de liste. Si vous connaissez d'index vous pouvez y accéder assez facilement. Notez que les articles peuvent être regroupés (ce qui est votre cas) et chaque nouveau groupe prend également un élément dans cette liste de vérification de la boîte, de sorte que pour votre cas, l'index de l'élément à 1:Ici est d'illustrer comment la
WizardForm.TasksList
liste de vérification de la boîte ressemble quand vous auriez deux tâches avec différents groupes:Pour accéder à la case à cocher tâche par sa description, essayez les opérations suivantes:
Parfait. Merci
Vous êtes les bienvenus! De toute façon, je ne suis pas un fan de ce genre de l'indice de coder en dur cependant je ne pouvais pas trouver un moyen d'obtenir de l'indice par le nom de la tâche, vous pouvez utiliser
WizardForm.TasksList.Items.IndexOf('TaskDescription')
pour trouver la case à cocher de l'indice de bien, mais c'est par la description de la tâche, non pas par le nom de la tâche.D'accord. J'ai fait ce changement.
il y a une meilleure fonction :
IsTaskSelected('tatata')
, en travaillant avec des index n'a pas fonctionné pour moi. Aussi je vous recommande de l'exécution d'actions dans lePrepareToInstall
de rappel, et de ne stocker des variables globales dans leNextButtonClick
bien sûr, en raison du potentiel appuyez sur retour.OriginalL'auteur TLama
Grande réponse ci-dessus. M'a donné tout ce dont j'avais besoin.
J'ai eu un cas où j'ai un tas de secondaire installateurs que j'ai utilisé le "checkonce", mais je voulais vérifier si le dossier est manquante (par exemple, l'utilisateur effacé le dossier d'installation manuellement), par exemple
OriginalL'auteur Wade Hatler