4D v16.3カラム内でのオブジェクト配列の使用(4D View Pro) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
カラム内でのオブジェクト配列の使用(4D View Pro)
カラム内でのオブジェクト配列の使用(4D View Pro)
4D v15以降、リストボックスのカラムはオブジェクト配列を扱えるようになりました。オブジェクト配列は異なる種類のデータを格納できるので、この強力な新機能を使用すれば、単一のカラム内の行ごとに異なる入力タイプを混ぜたり、様々なウィジェットを表示したりといった事ができるようになります。例えば、最初の行にテキスト入力を挿入し、二行目にチェックボックスを、そして産業目にドロップダウンを挿入する、と言ったことが可能になります。また、オブジェクト配列は、ボタンやカラーピッカーと言った新しいウィジェットへのアクセスも可能にします。 以下のリストボックスはオブジェクト配列を使用してデザインされました: ライセンスについての注意: リストボックス内でのオブジェクト配列の使用は、来る"4D View Pro"ツールへの第一歩です(これは現行の4D View プラグインを置き換えるものです)。この機能を使用するためには、有効な4D Viewライセンスが必要になります。詳細な情報に関しては、4D Webサイトを参照して下さい。 オブジェクト配列をリストボックスのカラムに割り当てるためには、プロパティリスト(の"変数名"フィールド)にオブジェクト配列名を設定するか、配列型のカラムのようにLISTBOX INSERT COLUMN コマンドを使用します。プロパティリスト内では、カラムにおいて"変数タイプ"にオブジェクトが選択できるようになりました: オブジェクトカラムに対しては、座標、サイズ、スタイルなどに関連した標準のプロパティは使用可能です。プロパティリストを使用して定義することもできますし、オブジェクト型のリストボックスカラムのそれぞれの行に対してスタイル、フォントカラー、背景色、表示状態をプログラムで定義することもできます。これらのタイプのカラムは非表示にすることも可能です。 しかしながら、データソーステーマは、オブジェクト型のリストボックスカラムに対しては選択できません。実際、それぞれのカラムのそれぞれのセルの中身は、それに対応するオブジェクト配列の要素の属性に基づいています。それぞれの配列の要素は、以下をプロパティを定義できます:
これらのプロパティを定義するためには、適切な属性をオブジェクト内に設定する必要があります(使用可能な属性は以下に一覧としてまとめてあります)。例えば、以下ような簡単なコードを使用して"Hello World!"とオブジェクトカラム内に書き込むことができます: ARRAY OBJECT(obColumn;0) //カラム配列 注: 表示フォーマットと入力フィルターはオブジェクトカラムに対しては設定できません。これらは値の型に応じて自動的に変わるからです。 リストボックスカラムにオブジェクト配列が割り当てられているとき、セルの表示、入力、編集の方法は、配列の要素のvalueType 属性に基づきます。サポートされるvalueType の値は以下の通りです:
4D は"valueType"の値に応じたデフォルトのウィジェットを使用します(つまり、"text"と設定すればテキスト入力ウィジェットが表示され、"boolean"と設定すればチェックボックスが表示されます)。しかしオプションを使用することによって表示方法の選択が可能な場合もあります。以下の一覧はそれぞれの値の型に対してのデフォルトの表示方法と、他に選択可能な表示方の一覧を表しています:
セルの表示とオプションは、オブジェクト内の特定の属性を使用することによって設定できます(以下を参照して下さい)。 オブジェクト型のリストボックスのカラムにおいては、表示フォーマットと入力フィルターを設定することはできません。これらは値の型に応じて自動的に定義されます。どのように定義されるかについては、以下一覧にまとめてあります:
オブジェクト配列のそれぞれの要素は、セルの中身とデータ表示を定義する一つまたは複数の属性を格納するオブジェクトです(上記の例を参照して下さい)。 唯一必須の属性は"valueType"であり、サポートされる値は"text"、"real"、"integer"、"boolean"、"color" そして "event"です。以下の表には、リストボックスオブジェクト配列において"valueType"の値に応じてサポートされる全ての属性がまとめてあります(他の属性は全て無視されます)。表示フォーマットに関しては、その更に下に詳細な説明と例があります。
セルの値は"value"属性に保存されています。この属性は入力と出力に使用されます。またリストを使用する際のデフォルトの値を定義するのにも使用できます(以下を参照)。 例: ARRAY OBJECT(obColumn;0) //カラム配列 注: ヌル値はサポートされており、空のセルとして表示されます。 "valueType" が"real" または "integer" であるとき、オブジェクトはmin と max 属性を受け取ります(値は適切な範囲である必要があり、また、valueTypeと同じ型である必要があります)。 これらの属性を使用すると入力値の範囲を管理する事ができます。セリが評価されたとき(フォーカスを失ったとき)、入力された値がminの値より低い場合、またはmaxの値より大きい場合には、その値は拒否されます。この場合、入力をする前の値が保持され、tipに説明が表示されます。 例: C_OBJECT($ob3) behavior 属性は値の通常の表示とは異なる他の表示方法を提供します。4D v15では、一つだけ他の表示方法が用意されています:
例: C_OBJECT($ob3) "choiceList" または "requiredList"属性がオブジェクト内に存在しているとき、テキスト入力は以下の属性に応じて、ドロップダウンリストまたはコンボボックスで置き換えられます:
どちらの場合においても、"value"属性を使用してウィジェット内の値を事前に選択することができます。 注: ウィジェットの値は配列を通して定義されます。既存の4Dリストをウィジェットに割り当てたい場合、"requiredListReference"、"requiredListName"、"choiceListReference"属性を使用するか、"choiceListName" 属性を使用する必要があります。 例:
"requiredListName" and "requiredListReference"属性を使用すると、リストボックスセル内において、デザインモード(ツールボックス内)において、またはプログラミングによって(New list コマンドを使用して)4Dで定義されたリストを使用することが出来るようになります。セルはドロップダウンリストとして表示されるようになります。これはつまり、ユーザーは、リスト内に提供された値のどれか一つのみを選択できるということを意味します。 "requiredListName" または "requiredListReference"は、リストの作成元に応じて使い分けます。リストがツールボックスで作成された場合、リスト名を渡します。そうでない場合、つまりリストがプログラミングによって定義された場合、リストの参照を渡します。どちらの場合においても、"value"属性を使用するとウィジェット内の値を事前に設定することができます。
注: これらの値を単純な配列を通して定義したい場合は、"requiredList" 属性を使用する必要があります。 この場合"saveAs" 属性は、選択された項目が"value"(値)として、または"reference”(参照)として保存されるかを定義します。
"save as"オプションについてのより詳細な情報については、Design Reference マニュアルの関連付け(値または参照番号)の章を参照して下さい。 注: リストが実数値を表すテキストを含んでいる場合、小数点はローカル設定に関わらず、ピリオド(".")である必要があります。例:"17.6" "1234.456" 例:
"choiceListName" と "choiceListReference" 属性を使用すると、リストボックスセル内において、デザインモード(ツールボックス内)において、またはプログラミングによって(New list コマンドを使用して)4Dで定義されたリストを使用することが出来るようになります。セルはコンボボックスとして表示されるようになります。これはつまり、ユーザーは値を選択、または入力できるということを意味します。 "choiceListName"または "choiceListReference" は、リストの作成元に応じて使い分けます。リストがツールボックスで作成された場合、リスト名を渡しま す。そうでない場合、つまりリストがプログラミングによって定義された場合、リストの参照を渡します。どちらの場合においても、"value"属性を使用 するとウィジェット内の値を事前に設定することができます。 注: これらの値を単純な配列を通して定義したい場合は、"choiceList" 属性を使用する必要があります。 この場合、"saveAs" 属性は使用できません。選択された項目は自動的に"value"(値)として保存されるからです(詳細な情報についてはcf. )。 注: リストが実数値を表すテキストを含んでいる場合、小数点はローカル設定に関わらず、ピリオド(".")である必要があります。例:"17.6" "1234.456" 例: ツールボックスで定義された"colors"リスト("blue"、"yellow"、そして "green"の値を格納)に基づいたドロップダウンリストを表示し、値として保存し、デフォルトの表示は"green"にしたい場合を考えます: C_OBJECT($ob) 特定の値を使用する事で、セルの値に関連した単位を追加することができます(例: "10 cm", "20 pixels"等)。単位リストを定義するためには、以下の属性のどれか一つを使用します:
単位リストが定義された方法に関わらず、以下の属性を関連付けることができます:
カレントの単位は、ボタンとして表示されます。このボタンは、クリックするたびに"unitList"、"unitsListReference" または "unitsListName" の値を切り替えて行きます(例 "pixels" -> "rows" -> "cm" -> "pixels" -> 等)。 例: 数値の入力と、その後に可能性のある単位("rows" または "pixels")を二つ続けて表示したい場合を考えます。カレントの値は"2" + "lines"と、オブジェクト内で直接定義された値("unitsList" 属性)を使用するものとします: ARRAY TEXT($_units;0) セルに省略ボタン[...] を追加したい場合、"alternateButton" 属性にTrue の値を入れてオブジェクトに渡すだけです。省略ボタンは自動的にセル内に表示されます。 このボタンがユーザーによってクリックされた場合、On Alternate Click イベントが生成され、そのイベントを自由に管理することができます(詳細な情報に関しては"events management" の章を参照して下さい)。 注: On Alternate Click は、On Arrow Click イベントの新しい名前であり、4D v15においてその拡張されたスコープを強調するために改名されました。 例: C_OBJECT($ob1) "color" valueType を使用すると、色、または色を表すテキストを表示する事ができます。
"event" valueType を使用すると、クリックした際にOn Clicked イベントを生成する単純なボタンを表示します。データまたは値を渡す/返すことはできません。 オプションとして、"label"属性を渡す事ができます。 例: C_OBJECT($ob) オブジェクトリストボックス配列を使用している際には、複数のイベントを管理することができます:
注: On Alternative Click は、4Dの以前のバージョンで使用されていた On Arrow Click イベントの新しい名前です。このイベントはスコープが拡張されたことにより、4D v15で改名されました。
|
プロパティ
プロダクト: 4D
履歴
初出: 4D v15 ARTICLE USAGE
ランゲージリファレンス ( 4D v16) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||