DCL : Demande de mot de passe

L'exemple suivant montre comment utiliser une boîte de dialogue simple pour demander un mot de passe à l'utilisateur.

Le fichier CODE.DCL suivant définit la boîte de dialogue Mot_De_Passe.
Utilise l'attribut password_char pour masquer le texte à saisir.

Fichier : CODE.DCL

Mot_De_Passe : dialog
{
   label = "Protection par mot de passe";
   : edit_box
   {
     label = "Mot de passe :";
     edit_width = 20;
     key = "motpass";
     password_char = "*";
     allow_accept = true;
     fixed_width = true;
   }
   spacer;
   ok_only;
}

Le fichier MOTPASSE.LSP définit la fonction RECUPCODE. Cette fonction charge le fichier CODE.DCL et affiche la boîte de dialogue Mot_De_Passe. Le texte saisi par l'utilisateur dans la zone de texte sera masqué grâce à l'attribut password_char définit dans le fichier CODE.DCL. La chaîne saisie par l'utilisateur est assignée à la variable 'pass'.
Dans cet exemple, le mot de passe valide est : 'azerty'.

Fichier : MOTPASSE.LSP

(defun C:RECUPCODE (/ id_dcl pass)
   (setq id_dcl (load_dialog "CODE.DCL"))
   (if (new_dialog "Mot_De_Passe" id_dcl)
     ( progn
       ;selectionne la zone de saisie.
       ( mode_tile "motpass" 2 )
       ;enregistre le mot de passe dans la variable 'pass'.
       (action_tile "motpass" "(setq pass $value)")
       (start_dialog)
       (if (/= pass "azerty")
          (alert "Mot de Passe non valide !")
          (alert "Mot de passe valide. Continuer")
        );Fin if
       (unload_dialog id_dcl)
     );fin progn
   );Fin if
);Fin defun