概要 - ダイアログ ボックスの構成要素(DCL)

ダイアログ ボックスは、ボックスとコンポーネントから構成されています。

注: AutoLISP での DCL のサポートは Windows のみに制限されています。

ダイアログ ボックスを作成したりカスタマイズするときは、ダイアログ ボックスの構成要素のことをタイルと呼びます。基本的なタイル タイプは、プログラマブル ダイアログ ボックス(PDB)機能によってあらかじめ定義されています。次の図に、AutoCAD® の標準的なダイアログ ボックスを示します。

複数のタイルを行(row)と列(column)にグループ化することによって、ボックスや境界線の有無に関係なく、プロタイプまたはサブアセンブリという複合タイルを作成できます。タイルの行や列を、クラスタといいます。プロトタイプとサブアセンブリは、タイル参照によってダイアログ ボックスの定義で使用できます。定義への各参照は、元のタイルの属性を継承します。プロトタイプを参照するときは、継承された属性の値を変更したり、新しい属性を追加することができます。サブアセンブリを参照するときは、属性を変更することも追加することもできません。

一部の属性が共通なタイルの複数のインスタンスを必要とする場合、共通の属性だけを含むプロトタイプを定義して名前を付けるのが最も簡単な方法です。そして、プロトタイプへの各参照で、属性を変更したり新しい属性を追加できますが、タイルを参照するたびに共通の属性をすべてリストする必要はありません。属性は継承されるので、新しいタイルを定義するよりも、タイル参照、特に定義済みのタイルへの参照を作成することの方が多いでしょう。

たとえば、[OK]、[キャンセル]、[ヘルプ]ボタンは、サブアセンブリにグループ化されており、3 つのボタン タイルの行(クラスタ)と各ボタンを区切るいくつかのスペースで定義されています。サブアセンブリは、1 つのタイルとして扱われます。サブアセンブリ内のタイルを、子といいます。DCL ファイルは、ツリー構造になっています。ツリーの一番上には、ダイアログ ボックス自体を定義する(dialog)タイルがあります。次の図に、DCL ファイルの構造を示します。

タイルまたはサブアセンブリのレイアウト、外観、機能は、タイルの属性を使用して DCL で指定します。たとえば、dialog 自体とほとんどの定義済みのタイル タイプには、そのタイルに関連する文字を指定するための label 属性があります。ダイアログ ボックス の label はダイアログ ボックスの一番上のタイトルを定義し、ボタンの label はボタン内の文字を指定します。その他の label も同様です。

ダイアログ ボックスをプログラミングする前に、まずダイアログ ボックスとアプリケーションの詳しい計画を立ててからコーディングとデバッグを行ってください。データの入力順は、ユーザごとに異なります。ユーザのさまざまなアクションを予期する必要性があるため、従来のプログラミングに比べると直線的でないプログラム構造になりますが、ユーザの作業形態をうまく反映できます。