client_data_tile 関数は、タイルにアプリケーション固有のデータを割り当てます。
タイルのアプリケーション固有データは、コールバック時に変数 $data として使用でき、文字列として返されます。クライアント データは DCL ファイル内で記述することはできず、アプリケーションが実行中のときだけ有効です。クライアント データを使用することは、ユーザ定義の属性を使用することに似ています。両者の主な違いは、ユーザ定義属性は読み込み専用で、クライアント データは実行時に変わり得るということです。また、エンド ユーザはアプリケーションの DCL ファイルでユーザ定義属性を調べることができますが、クライアント データをエンド ユーザが見ることはできません。
プログラムはリスト ボックス(またはポップアップ リスト)で表示されるリストを保持しなければならないので、クライアント データはこの情報を扱うのに役立ちます。MK_LIST 関数を次のように変更すると、リストを引数にすることができます。
(defun MK_LIST (readlist displist / )
このコードはグローバル リスト変数を不要にします。ダイアログ ボックス ハンドラの主要部分に次の呼び出しを挿入すると、client_data_tile を呼び出して短いリストをタイルに関連づけ、その後でアクション式を使用してそのリストを MK_LIST に渡すことができます。
(client_data_tile "colorsyslist" "Red-Green-Blue Cyan-Magenta-Yellow Hue-Saturation-Value" ) (action_tile "colorsyslist" "(setq usrchoice (mk_list $value $data))" )