Création d’une boîte de dialogue conditionnelle « Veuillez patienter... »
L’exemple suivant montre comment créer une boîte de dialogue conditionnelle qui s’affiche et avertit l’utilisateur qu’une tâche en arrière-plan est toujours en cours d’exécution chaque fois que l’utilisateur active prématurément un contrôle affiché.
L’exemple montre également comment SpawnWaitDialog ControlEvent peut généralement être utilisé pour protéger un contrôle qui déclenche une action en fonction de l’achèvement d’une tâche en arrière-plan.
Dans cet exemple, une boîte de dialogue Sélection contenant trois boutons intitulés Installer maintenant, Suivant et Coût du disque s’affiche pour l’utilisateur pendant le processus d’installation. Toutefois, le programme d’installation effectue également une tâche de coût de l’espace disque en arrière-plan lors de l’affichage de cette boîte de dialogue. L’auteur souhaite protéger ces boutons contre l’activation et souhaite qu’une boîte de dialogue « Veuillez patienter » s’affiche si l’utilisateur clique sur l’un des boutons avant que la tâche de coût ne soit terminée. L’auteur souhaite également que cette boîte de dialogue contienne un bouton Annuler et disparaisse dès que la tâche en arrière-plan est terminée.
Pour afficher une boîte de dialogue demandant à l’utilisateur d’attendre que le coût du disque en arrière-plan soit terminé
- Utilisez les fonctionnalités de création du programme d’installation pour ajouter une nouvelle boîte de dialogue modale, nommée WaitForCosting, dans la table Dialogue. La boîte de dialogue doit afficher une chaîne de texte indiquant « Veuillez patienter pendant que le coût de l’espace disque termine ».
- Ajoutez un seul bouton à cette boîte de dialogue, intitulée Annuler, en le créant dans la table Contrôle.
- Liez le bouton Annuler à un Objet ControlEvent qui ferme la boîte de dialogue WaitForCosting en créant un EndDialog ControlEvent dans la table ControlEvent. Définissez l’argument de l’événement EndDialog Control sur Exit.
- Liez un événement de contrôle SpawnWaitDialog aux boutons Installer maintenant, Suivant et de Coût du disque existants affichés dans la boîte de dialogue Sélection. Définissez l’argument de cet événement ControlEvent dans la table ControlEvent comme étant la boîte de dialogue WaitForCosting et définissez l’expression dans la colonne Condition de la table sur : CostingComplete =1.