Création et Utilisation des boîtes de dialogues
Tutorial pour apprentis
Généralités
Ici, tout tourne autour d'une seule fonction : MessageBox. Cette fonction admet plusieurs paramètres que l'on retrouvera plus loin. Elle se trouve en général dans les fonctions d'interaction (mais si, toutes celles qui commencent par .on pour l'installation et un.on pour la désinstallation) malgré tout, si le cœur vous en dit, vous pouvez aussi la mettre dans une de vos fonctions. Toujours est-il que c'est dans les fonctions d'interaction que ces boîtes sont les plus utiles.
Paramètres
Il faut savoir qu'il existe plusieurs catégories de paramètres, et vous ne devez en spécifier qu'un par catégorie (sauf pour la catégorie Autres). J'ai essayé d'en spécifier plusieurs, juste pour voir, et j'ai fait sortir un bouton "Aide" alors que dans le principe, on ne peut pas. Par contre cela a bloqué ma machine donc un par catégorie, pas plus! La syntaxe est : MessageBox suivi des paramètres qui vont suivre séparés par | (Alt Gr+6 sur le clavier) suivi du texte que vous voulez afficher et pour finir les sauts que devra faire le programme à l'utilisation de tel ou tel bouton.
Les paramètres sont :
- Les boutons
- MB_OK ;le bouton OK
- MB_OKCANCEL ;les boutons OK et Annuler
- MB_ABORTRETRYIGNORE ;les boutons Abandonner, Réessayer et Ignorer
- MB_RETRYCANCEL ;les boutons Réessayer et Annuler
- MB_YESNO ;les boutons Oui et Non
- MB_YESNOCANCEL ;les boutons Oui, Non et Annuler
- Les îcones (ce n'est pas obligatoire d'en mettre)
- MB_ICONEXCLAMATION ;îcone avec un triangle jaune et un point d'exclamation
- MB_ICONINFORMATION ;îcone avec une bulle et un i dedans
- MB_ICONQUESTION ;pareil mais avec un point d'intérogation
- MB_ICONSTOP ;îcone avec un rond rouge et un X dedans
- Le bouton par défaut
- MB_DEFBUTTONx ;définit le bouton séléctionné par défaut; x vaut 1, 2, 3 ou 4 (les boutons sont numérotés dans l'ordre indiqué plus haut)
- Autres
- MB_TOPMOST ;la boîte de dialogue passe au dessus de toutes les fenêtres et empêchera toute activation tant qu'elle sera ouverte
- MB_SETFOREGROUND ;option qui mettra la boite de dialogue au premier-plan ! Si NSIS est placé en arrière-plan durant l'installation, sans cette option, la fenêtre affichée ne sera pas immédiatement visible par l'utilisateur...
- MB_RIGHT ;le texte est aligné sur la droite de la boîte
- Les sauts sont
- IDABORT ;si clic sur Abandonner
- IDCANCEL ;idem sur Annuler
- IDIGNORE ;idem sur Ignorer
- IDNO ;idem sur Non
- IDOK ;idem sur OK
- IDRETRY ;idem sur Réessayer
- IDYES ;idem sur Oui
Remarque : les sauts n'en sont pas vraiment. Pour fonctionner, ils doivent être suivi par un label de goto valide, c'est-à-dire qui est spécifié juste après chaque représentant de la série des IDxxx et également plus loin dans le script.
Récapitulatif et mises en garde (posologie et contre-indications aussi)
Donc, en récapitulant, on a dans l'odre:
MessageBox MB_xxx|MB_xxx|MB_xxx "votre texte" IDxxx label1 IDxxx label2
A vous de remplacer par ce qui vous convient!!
Note : l'exemple ci-dessus est pour une boîte à trois boutons.
Je vous entend déjà vous insurger : "mais il raconte quoi, il y a seulement deux sauts, il était complétement fini le jour où il a fait son tuto, je vais me plaindre et patati et patata" (en passant pour se plaindre c'est chez veekee, c'est lui qui m'a "embauché"). Eh bien vous aurez tort de râler lamenablement car c'est tout à fait normal. Le bouton qui n'a pas de saut...n'en a pas besoin, tout simplement! Il suffit de mettre ses instructions juste à la suite de la ligne pour la boîte!
Autre chose, dans votre script, vous aurez une, deux ou trois séries de commandes (une pour chaque bouton). N'oubliez pas à la fin de chaque série de mettre un goto qui pointe à la fin de la dernière série...il serait bête d'avoir fait tout ce chemin pour exécuter les instructions relatives aux autres boutons...
Ayez également à l'esprit que l'utilisateur, ne veut peut-être pas voir des millions de boîtes sur son écran. Utilisez-les avec un compte-gouttes. Pas plus de 2 ou 3 (ce qui est déjà pas mal) parce que, je les vois déjà venir les félés des boîtes! Pour ce qui est des instructions que vous assignez à chaque bouton alors là si je décrivais le tout, le bottin n'y suffirait pas.
On peut citer juste pour l'exemple, l'execution d'un programme, la modification de paramètres dans un fichier ou dans la base de registre, le lavage de la vaisselle, la demande de payement par carte bleue (non je rigole! quoique je me demande...) enfin presque tout ce que NSIS sait faire...
Une idée de pas à pas ?
Contactez Julien.
