DCL ダイアログ ボックスのセットアップは、いくつかの AutoLISP 関数を使用する必要があり、それらを特定の順序で呼び出す必要があります。
注: AutoLISP での DCL のサポートは Windows のみに制限されています。
DCL ダイアログ ボックスを表示して使用する場合に従う必要がある典型的なシーケンスの概要は、次のとおりです。
- load_dialog を呼び出し、DCL ファイルをロードします。
- new_dialog を呼び出し、特定のダイアログ ボックスを表示します。
new_dialog が返す値を必ずチェックしてください。new_dialog 呼び出しが失敗したにもかかわらず start_dialog を呼び出すと、予測できない結果になる可能性があります。
- タイル値、リスト、およびイメージを設定することにより、ダイアログ ボックスを初期化します。action_tile を呼び出してアクション式またはコールバック関数を設定するときも初期化してください。この時点で呼び出すその他の関数としては、一般的なタイル値とステータスに使用する set_tile、mode_tile、リスト ボックスに使用する start_list、add_list、end_list、およびイメージに使用する start_image、vector_image、fill_image、slide_image、end_image、およびそれらと一緒に使用する寸法関数です。ここで、client_data_tile を呼び出してアプリケーション固有のデータをダイアログ ボックスとその要素に関連付けることもできます。
- start_dialog を呼び出して、ユーザが入力できるよう、コントロールをダイアログ ボックスに切り替えます。
- アクション(コールバック)内からユーザ入力を処理します。おそらく get_tile、get_attr、set_tile、mode_tile を使用するときに、入力を処理します。ユーザが終了ボタンを選択したときに done_dialog を呼び出すアクションが起動されます。これにより、start_dialog は値を返します。ここで、unload_dialog を呼び出して DCL ファイルをロード解除します。
この方法は、一度に 1 つのダイアログ ボックスと 1 つの DCL ファイルだけを扱います。通常、アプリケーションは複数のダイアログ ボックスを備えています。複数のダイアログ ボックスを扱う上で最も簡単で速い方法は、すべてのダイアログ ボックスを 1 つの DCL ファイルに保存することです。次に load_dialog を呼び出してすべてのダイアログ ボックスを一度にロードします。その後、特定のダイアログ ボックスに対して new_dialog を呼び出すことができます。ただし、メモリが限られている場合には、複数の DCL ファイルを作成し、いったん unload_dialog を使用してダイアログ ボックスのセットをメモリから削除した上で、他のダイアログ ボックスのセットをロードするという方法を採らなければならないこともあります。