Programmation mIRC/Dialogues
mIRC vous permet de créer des dialogues personnalisés qui peuvent être utilisés pour des entrées de requêtes pour un utilisateur ou pour accomplir de nombreuses autres tâches utiles.
Il y a deux types de dialogues; un dialogue sans mode, créé par la commande /dialog, et un dialogue modal, créé avec l'identifieur $dialog(). Les deux sont décrits ci-dessous.
La commande /dialog.
La commande /dialog vous permet de créer un dialogue sans mode avec le paramètre -m. Ce type de dialogue n'arrête ni ne retourne une valeur au script appelant, et le dialogue peut être affiché indéfiniment et utilisé pour de nombreux buts.
/dialog -mdltsonkcvie nom [table] [x y w h] [texte]
Où nom est le nom par lequel vous vous referez au dialogue, et table est le nom de la table du dialogue utilisée pour créer le dialogue (voir ci-dessous).
L'identifieur $dialog().
Les dialogues créés avec $dialog() sont modaux. En d'autres termes, ils arrêtent le script jusqu'à ce que le dialogue soit refermé, puis retournent une valeur, donc ne permettent pas d'accéder à d'autres fenêtres pendant que ce dialogue est ouvert. Ces types de dialogue devraient seulement être affichés pour une entrée utilisateur immédiat. L'identifieur $dialog() fonctionne de la même façon que les autres identifieurs :
Où nom est le nom par lequel vous vous référerez au dialogue, table est la table du dialogue utilisée pour créer un dialogue (voir ci-dessous), et parent est la fenêtre parente du dialogue. Parent peut être : 
Si aucun dialogue n'est ouvert, la valeur par défaut est généralement -3.
Vous pouvez également utiliser l'identifieur $dialog(nom/N) pour lister tous les dialogues ouverts, où N est le Nième dialogue ouvert. Si N est nul, le nombre total de dialogues ouverts est retourné.
$dialog() supporte également ces propriétés :
x,y,w,h retourne la taille et la position du dialogue 
cw,ch retourne la largeur et la hauteur de la zone client du dialogue 
title retourne le titre du dialogue 
modal retourne $true si le dialogue est modal, $false autrement 
table retourne la table du dialogue qu'il utilise 
ok retourne l'identité du bouton OK si vous en avez spécifiez un 
cancel retourne l'identité du bouton Cancel si vous en avez spécifié un 
result retourne l'identité du bouton Result si vous en avez spécifié un 
focus retourne l'identité du contrôle qui est en focus actuellement
tab retourne l'identité de la tabulation actuellement affichée
active retourne $true si le dialogue est la fenêtre active, $false autrement 
hwnd retourne le handle de la fenêtre du dialogue
La table du dialogue.
Vous pouvez utiliser le préfixe dialog pour créer une table de dialogue appelée nom dans un script de ce format :
Note de scripteur : Il est plus que conseillé de mettre un bouton de type OK lors de la création de vos dialogues. Certaines DLLs ou vieilles versions de mIRC ne supportent pas la non-présence de ce bouton OK.
Le paramètre -l rend une table de dialogue locale, ainsi elle ne peut être accédée que par d'autres scripts dans le même fichier. 
Où "texte" est le texte par défaut pour un contrôle, id est un numéro qui identifie uniquement un contrôle, x y w h sont la position et la taille du contrôle, et style se compose en une combinaison de mots entre parenthèses.
= Autres styles =
En plus des styles montrés entre parenthèses pour chaque type de contrôle, vous pouvez également spécifier ces styles :
 disable désactive le contrôle
 hide cache le contrôle
 group début d'un groupe
 result identifie le contrôle auquel la valeur sera utilisée comme valeur de retour au script appelant quand l'utilisateur presse le bouton ok 
= Variables =
Si vous spécifiez un nom %variable dans une définition d'item dans un nom de dialogue, le %variable sera réglé avec le contenu de cet item quand le dialogue est fermé.
edit "", 2, 10 10 100 20, autohs %result
= Contrôle tab =
La première définition de tab spécifie la taille du contrôle tabulation, et toutes définitions suivantes de tab s'ajoutent aux tabulations. Vous pouvez associer les contrôles avec une tabulation spécifique en utilisant le style tab suivi de la valeur id pour le tab, comme montré dans l'exemple ci-dessous.
Vous pouvez utiliser /did -fu pour régler le focus sur un tab spécifique, et /did -vh pour montrer/cacher le contrôle tab entier.
= Menus =
Vous pouvez ajouter des menus et sous-menus aux dialogues en utilisant les préfixes menu et item :
dialog nom {
 menu "texte", <IDmenu> [, IDmenu]
 item "texte", <id> [, IDmenu]
 item break, <id> [, IDmenu]
Si vous ne spécifiez pas un IDmenu pour un item, il utilisera le dernier IDmenu qui a été créé/utilisé dans un précédent menu/item.
Par exemple, la définition du menu suivant reproduit le menu file du dialogue d'édition de mIRC :
Vous pouvez utiliser la commande /did (décrite ci-dessous) pour activer/désactiver, cocher/décocher, ajouter, effacer, insérer, et écraser un item de menu.
Pour ajouter un item à un menu que vous pouvez utiliser : /did -a nom <IDmenu> <nouveauID> <texte>.
Pour insérer un item que vous devez utiliser : /did -i nom <id> <nouveauID> <texte> où <id> est l'item avant lequel vous voulez insérer un item.
= Dbu contre Pixels =
L'option dbu fait que mIRC utilise les unités de base du dialogue lors de la création du dialogue. Cela assure que le dialogue sera vu de la même façon sous tous les types d'affichage. Pixels est la valeur par défaut cependant pour maintenir la compatibilité avec les précédents scripts.
Les identifieurs $dbuw et $dbuh retournent les valeurs de la hauteur et la largeur par pixel du dbu de l'affichage actuel. Cela peut ne pas être une valeur entière. 
= Boutons Ok et Cancel =
Vous pouvez spécifier un bouton ok et/ou cancel, et quand l'utilisateur clique sur les boutons ok ou cancel le dialogue est fermé. Vous pouvez empêcher le dialogue de se fermer si un utilisateur clique sur le bouton ok en utilisant /halt.
= Position et taille par défaut =
Si vous spécifiez -1 pour n'importe quelles valeurs x y w h dans les réglages de taille pour le dialogue, un réglage par défaut est utilisé. Pour faire centrer le dialogue dans une fenêtre, spécifiez x y en -1 -1. Le réglage de taille peut être surmonté dans l'évènement init (voir ci-dessous) en utilisant /dialog -s nom x y w h.
L'évènement On Dialog.
Si un utilisateur change l'état des contrôles dans le dialogue, par exemple cliquer sur un bouton, taper du texte dans une boite d'édition, etc., cela déclenche l'événement de script on dialog ce qui permet de contrôler l'entrée de l'utilisateur :
 on 1:dialog:nom:évènement:id: {
 echo $dname $devent $did
$dname Nom du dialogue utilisé pour cet évènement
$devent Type d'évènement déclenché
$did Numéro d'identité du contrôle déclenché
Où nom identifie le dialogue, id est le numéro d'identité du contrôle déclenchant l'évènement, et l'événement peut être :
 active s'active sur le dialogue quand il est actif 
 init juste avant que le dialogue soit affiché, les contrôles peuvent être initialisés dans cet événement. L'identité est nulle.
 close Quand le dialogue est fermé. 
 edit Le texte dans la boite d'édition ou la boite combo a changé.
 sclick Un seul clic dans la liste/boite combo, cocher/décocher des boutons radio/check ou cliquer sur un bouton.
 dclick Double clic dans une liste/boite combo.
 menu Un item du menu a été sélectionné.
 scroll La position du contrôle scroll a changé. 
Vous pouvez détecter les évènements de souris qui n'est pas associé au contrôle spécifique : 
 mouse La souris a bougé 
 sclick bouton gauche cliqué
 uclick bouton gauche relevé 
 dclick double clique
 rclick bouton clic droit
 drop clic de déplacement
Vous pouvez utiliser $mouse pour récupérer la position actuelle de la souris.
La commande /did.
La commande /did vous permet de modifier les valeurs des contrôles dans un dialogue, par exemple changer le texte dans un contrôle edit ou mettre le focus sur un bouton ou effacer des lignes dans une liste.
 /did -ftebvhnmcukradiogj nom id [n] [texte | nomdefichier]