Label (autolisp)

提供:GizmoLabs - だいたい CAD LISP なサイト
2022年8月2日 (火) 01:01時点におけるGizmon (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
属性構文
label = "string";


機能
  • タイル内に表示する文字を指定します。有効な値は、クォーテーションで囲まれた文字列です(既定は空白の文字列 " ")label 文字列の位置は、タイルによって決まっている。
  • ラベル属性は、タイルのショートカット キー(ニーモニック文字)を指定できる。ショートカット キーは、タイルのラベルに下線で示されます。
  • ラベル文字列内の文字にアンバサンド(&)がある場合、その文字はショートカット キーになる。文字は、ダイアログ ボックス内で重複してもかまわない。
  • 複数のタイルが同じショートカット キーを持っている場合、ユーザはそのキーを押し、タイルを順次循環できる。
ショートカット キーを押すとフォーカスは移りますが、タイルは選択されない。
ユーザがクラスタやリスト ボックスなど、複数の項目からなるグループを含むタイルのショートカット キーを押すと、フォーカスはタブ停止位置であるタイル内の最初の項目に移る。
is_tab_stop 属性に false が指定されている場合を除き、アクティブ タイルは必ずタブ停止位置である。
  • 注: mnemonic 属性でショートカット キーを指定することもできる。


BricsCAD 特有の挙動

DCLでは、歴史的な理由から、label属性は、通常、追加のスペースを挿入し、単語と列の位置を合わせようとして、列のラベルを偽造するために使用される。

例えば、tabs属性の値が "10 20 30 "で、幅10で3列を指定するつもりだとする。 列のヘッダーを指定する典型的なラベルは、

"header 1     header 2     header 3"

という形式。

あるいは、tabs属性に同じ値を与えて、4列、3列は幅10、1列は残りの幅を指定することも可能。 その場合、典型的なラベル属性は、

"header 1     header 2     header 3     header 4"

となる。

BricsCADでは、本当の列ラベルを持つことが可能。 列ラベルがスペースを使用して列と整列されている場合、BricsCADは以下のように列ヘッダを解析しようとする。


各列の幅 n に対して、ラベル属性の次の n 文字を取り、最後の空白も含む。 上記の例では、ラベルの最初の10文字が

"header 1  "

末尾のスペースを含めると、

"header 1     "

となる。

この作業を繰り返すと、ラベル属性が適切に分割される。 サブラベルの数がtabs属性の幅の数と一致すれば(同量でも1列増やしてもよい)、実際のカラムラベルが表示されることになる。

実際のカラムラベルが表示される場合は、tab_truncate が on のときと同様にグリッド線が表示される。 label 属性によるサブラベルの分割は、かなり凝ったものである。

BricsCAD 専用の属性 bcad_label を使い、タブ「 \t 」記号を指定することでサブラベルに分割する方が簡単である。 しかし、label属性でサブラベルを検出することで、レガシーDCLコードを使用する際に、BricsCADで本物の列ラベルを「自動的」に持つ良いチャンスとなる。

特殊な動作はリストボックスのみで、それ以外はラベルの標準的な動作になる。



関連事項