Ajout de texte stocké dans une propriété
L’exemple décrit dans la section intitulée Création d’une boîte de dialogue conditionnelle « Patientez... » affiche une boîte de dialogue avec le texte suivant : « Patientez pendant le calcul de l’espace disque nécessaire ». Pour ce faire, il vous suffit de placer un contrôle Text dans la boîte de dialogue, et d’entrer la chaîne de caractères dans la colonne Text de la table Control. Dans le cas présent, les informations relatives au style de police doivent être incorporées dans la chaîne. L’auteur doit définir la police et le style de police en faisant précéder la chaîne de caractères de {\style}. Où style représente un identificateur de style de police listé dans la colonne TextStyle de la table TextStyle. Cette méthode d’ajout de texte est illustrée à plusieurs reprises dans Exemple d’installation.
L’auteur d’une interface utilisateur peut également stocker du texte dans une propriété. L’exemple suivant en est l’illustration. Il montre comment ControlEvents peut être utilisé pour afficher des chaînes de caractères de remplacement.
L’objectif de cet exemple est à nouveau d’afficher une boîte de dialogue WaitForCosting pendant l’exécution d’une tâche en arrière-plan. Quelle est la différence avec le nouveau scénario ? Si l’utilisateur annule la boîte de dialogue WaitForCosting, et s’il tente d’activer le contrôle avant la fin de la tâche en arrière-plan une deuxième fois, la boîte de dialogue WaitForCosting réapparaît en affichant un autre message : « Le calcul de l’espace disque nécessaire est toujours en cours d’exécution. Vous pouvez continuer à attendre ou retourner à la boîte de dialogue de sélection principale pour quitter cette séquence. »
Pour afficher une boîte de dialogue « Patientez » qui présente d’autres messages
- Commencez par ajouter une boîte de dialogue WaitForCosting conditionnelle à une boîte de dialogue Sélection, comme indiqué dans Création d’une boîte de dialogue conditionnelle « Patientez... ».
- Placez un contrôle Text dans la boîte de dialogue WaitForCosting en créant un enregistrement dans la table Control. Entrez l’identificateur de la boîte de dialogue WaitForCosting dans la colonne Dialog_. Entrez l’identificateur du contrôle Text dans la colonne Control. Spécifiez le contrôle comme étant de type Text dans la colonne Type.
- Spécifiez l’attribut de position de contrôle du contrôle de texte en entrant les coordonnées horizontales et verticales du coin supérieur gauche du contrôle dans les colonnes X et Y de la table Control. Utilisez les pixels en tant qu’unités de distance.
- Spécifiez la largeur et la hauteur du contrôle de texte en entrant ces dimensions dans les colonnes Width et Height de la table Control. Utilisez les pixels en tant qu’unités de longueur.
- Les colonnes Property et Control_Next de la table Control n’affectent pas les contrôles Text et peuvent être laissées vides dans le cas présent.
- Spécifiez les attributs de contrôle du contrôle Text, qui sont associés aux indicateurs de bits. Additionnez les valeurs de bits individuelles, puis entrez le total dans la colonne Attributes de la table Control. Il s’agit des attributs de contrôle Visible, Sunken, Enabled, Transparent, NoWrap et NoPrefix. La combinaison de bits qui permet d’afficher un contrôle de texte sur un arrière-plan opaque, avec retour du texte à la ligne, est 0. Vous devez donc entrer 0, ou laisser la colonne Attributes vide.
- La colonne Text de la table Control peut être laissée vide. Le contrôle Text affiche la chaîne de caractères qui correspond à la valeur de l’attribut du contrôle Text. La méthode de définition de cet attribut est décrite dans les étapes suivantes de cette procédure.
- Ajoutez un enregistrement à la table Property pour définir la propriété de message FirstMessage. Cette propriété est une chaîne contenant le style de police et le texte du premier message. Entrez le nom FirstMessage dans la colonne Property. Dans la colonne Value, entrez la chaîne : « {\WaitStyle}Patientez pendant le calcul de l’espace disque nécessaire. », où WaitStyle représente l’identificateur de l’un des styles de police listés dans la colonne TextStyle de la table TextStyle.
- Ajoutez un enregistrement à la table Property pour définir la propriété de message SecondMessage. Cette propriété est une chaîne contenant le style de police et le texte du second message. Entrez le nom SecondMessage dans la colonne Property. Dans la colonne Value, entrez la chaîne : « {\WaitStyle}Le calcul de l’espace disque nécessaire est toujours en cours d’exécution. Vous pouvez continuer à attendre ou retourner à la boîte de dialogue de sélection principale pour quitter cette séquence. »
- Ajoutez un enregistrement à la table Property pour définir la propriété de message WaitMessage. Cette propriété est une chaîne contenant le style de police et le texte du message affiché dans la boîte de dialogue WaitForCosting, si l’utilisateur tente d’activer un bouton de commande avant la fin du calcul. Entrez le nom WaitMessage dans la colonne Property. Dans la colonne Value de la table Property, entrez : FirstMessage.
- Ajoutez un ControlEvent SetProperty à la table ControlEvent, qui initialise WaitMessage en lui affectant FirstMessage chaque fois qu’une boîte de dialogue Nouvelle sélection s’ouvre. Entrez l’identificateur de la boîte de dialogue situé juste avant la boîte de dialogue Sélection dans la séquence de boîtes de dialogue au sein de la colonne Dialog_. Entrez l’identificateur du contrôle de cette boîte de dialogue permettant d’ouvrir la boîte de dialogue Sélection au sein de la colonne Control_. Entrez [WaitMessage] dans la colonne Event. Entrez [FirstMessage] dans la colonne Argument. Entrez 1 dans la colonne Condition, puis laissez la colonne Ordering vide.
- Ajoutez un ControlEvent SetProperty à la table ControlEvent, qui affecte la valeur SecondMessage à Waitmessage si l’utilisateur ferme la boîte de dialogue WaitForCosting avant la fin du calcul de l’espace disque nécessaire. Entrez l’identificateur de la boîte de dialogue WaitForCosting dans la colonne Dialog_. Entrez l’identificateur du contrôle Text dans la colonne Control_. Entrez [WaitMessage] dans la colonne Event. Entrez [SecondMessage] dans la colonne Argument. Entrez NOT CostingComplete dans la colonne Condition, puis laissez la colonne Ordering vide.
- L’étape suivante lie l’attribut du contrôle Text au ControlEvent, qui génère la boîte de dialogue WaitForCosting. Cela oblige le programme d’installation à passer la valeur de la propriété WaitMessage à l’attribut du contrôle Text chaque fois que l’utilisateur ouvre une boîte de dialogue WaitForCosting.
- Abonnez l’attribut du contrôle Text au ControlEvent SpawnWaitDialog, qui ouvre la boîte de dialogue WaitForCosting, en ajoutant un enregistrement à la table EventMapping. Entrez l’identificateur de la boîte de dialogue WaitForCosting dans la colonne Dialog_. Entrez l’identificateur du contrôle Text dans la colonne Control_. Entrez SpawnWaitDialog dans la colonne Event. Entrez Text, l’identificateur de l’attribut du contrôle Text, dans la colonne Attribute de la table EventMapping.