この例では、AutoLISP を使用して基本的なダイアログ ボックスを作成し、表示する方法を説明します。
この DCL は、テキスト タイルと 1 つの[OK]ボタンを含む、サンプル ダイアログ ボックスというラベルのダイアログ ボックスを定義しています。この DCL コードを hello.dcl という名前のファイルに格納します。
hello : dialog { label = "Sample Dialog Box"; : text { label = "Hello, world."; } ok_only; }
(defun C:HELLO ( / dcl_id ) (setq dcl_id (load_dialog "hello.dcl")) ; Load the DCL file. (if (not (new_dialog "hello" dcl_id)) ; Initialize the dialog. (exit) ; Exit if this does not work. ) (start_dialog) ; Display the dialog box. (unload_dialog dcl_id) ; Unload the DCL file. (princ) )
次に、AutoLISP の動作を 1 行ごとに説明します。
他のダイアログ ボックスでは、タイル値、リスト、イメージなども設定します。この DCL の例は、ok_only という名前の定義済みのタイルを使用しているため、その既定値を変更しない場合は、タイルを初期化する必要はありません。ok_only タイルには、done_dialog というアクションも割り当てられています。ユーザが[OK]ボタンを選択すると、AutoCAD は AutoLISP アプリケーションに done_dialog の呼び出しを渡し、ダイアログを終了します。
この例では、説明を分かりやすくするためにエラー処理は含めていません。
start_dialog の呼び出しは、ユーザがボタンなどのタイルを選択し、そのタイルに関連付けられているアクション式が done_dialog を呼び出すまでアクティブなままです。done_dialog の呼び出しは、タイルによって明示的に発行できます。また、is_cancel 属性に true が設定されている場合は、選択したタイルによって done_dialog の呼び出しを発行することもできます。