この例では、簡単なダイアログ ボックスを使用して、ユーザにパスワードを要求する方法を示します。
次は、passdlg という名前のダイアログ ボックスを定義します。このダイアログ ボックスには 2 つのタイルがあります。ユーザがパスワードを入力する edit_box タイルと ok_cancel タイルです。ユーザが入力したテキストがマスクされるように、DCL の password_char 属性を使用します。
// GETPASS.DCL // passdlg : dialog { label = "Password Protected"; : edit_box { label = "Password:"; edit_width = 20; key = "password"; password_char = "?"; } ok_cancel; }
次は、GETPASS という名前の関数を定義します。この関数は、getpass.dcl ファイルをロードし、passdlg ダイアログ ボックスを表示します。ユーザが編集ボックスに文字を入力すると、その文字は DCL ファイルで定義されている password_char 文字によってマスクされます。編集ボックスに割り当てたアクションによって、ユーザが入力した文字が変数 pass に格納されます。
;; GETPASS.LSP ;; (defun GETPASS ( / dcl_id pass ) (setq dcl_id (load_dialog "getpass.dcl")) (if (new_dialog "passdlg" dcl_id) (progn (action_tile "password" "(setq pass $value)") (start_dialog) (unload_dialog dcl_id) ) (princ "Error: Unable to load GETPASS.DCL. ") ) pass )
この GETPASS 関数は、ユーザが入力した文字列を返します。