ARES LISPはDCL (ダイアログ コントロール言語)をサポートして、LISPからダイアログボックスを使うことができます。
ダイアログボックスは拡張子 DCL のテキストファイルを定義します。
ダイアログボックスを表示するには
下記の内容を c:\temp\test.dcl として保存します。
AREA_EDIT:dialog{
label=”記号データ修正”;width=60;
:column{
:boxed_radio_row{
label = “演算方法”;
key = “option”;
fixed_width=true;
:radio_button{label=”加算” ;key=”radAdd”;}
:radio_button{label=”減算” ;key=”radGen”;}
}
:edit_box{label=”記 号”;key=”edtFgo”;fixed_width=true;}
:edit_box{label=”計算式”;key=”edtSik”;}
:edit_box{label=”面 積”;key=”edtAaa”;fixed_width=true;}
}
spacer_1;
ok_cancel;
}
次の内容を c:\temp\test.lsp として保存します。
(defun C:DLGTEST ( / id ret )
(setq id (load_dialog “c:/temp/test.dcl”))
(new_dialog “AREA_EDIT” id)
(setq ret (start_dialog))
(unload_dialog id)
ret
)
ARESのコマンドウィンドウで、以下を実行します。
(load “c:/temp/test.lsp”)
DLGTEST

OKボタンを押すと 1 を返し、キャンセルボタンやクローズボタンを押すと 0 を返します。
ダイアログボックスに値を設定、結果を取得するには
プログラムを次のように修正します。
(defun C:DLGTEST ( / id ret option expression )
(setq option “radAdd” expression “h+y*2”) ;初期値を変数に持つ
(setq id (load_dialog “c:/temp/test.dcl”))
(new_dialog “AREA_EDIT” id)
(set_tile “option” option) ;初期値をラジオボタンボックスに設定
(set_tile “edtSik” expression) ;初期値をエディットボックスい設定
(action_tile “option” “(setq option $value)”) ;ラジオボタンが変化したら変数を更新
(action_tile “edtSik” “(setq expression $value)”) ;エディットボックス〃
(setq ret (start_dialog))
(unload_dialog id)
(if (= ret 1) ;OKボタンが押されたら値を返す、キャンセルのときは nil を返す
(list (if (= option “radAdd”) 0 1) expression)
nil
)
)
これで実行すると、演算方法と計算式が初期化された状態で表示されます。

値を変更してOKボタンを押すと、変更した値が返ります。
: DLGtest

(1 “h+y*2+3”)