【小技】ポップアップやコンボボックスに配列を使用しない
【小技】ポップアップやコンボボックスに配列を使用しない
小技といっても,ドキュメントに書いてあることですが,ベテラン・デベロッパーには,ちょっと新鮮な情報かもしれません。
これまで,ポップアップメニュー・コンボボックスは「(文字型の)配列」をデータソース("変数")とするのが常でした。
そのような場合,選択された項目は myArray{myArray} といった感じで参照することになります。
v14以降,こうした「リスト系」のオブジェクトに文字型あるいは数値型の変数(つまり配列ではない)が指定できるようになりました。
http://doc.4d.com/4Dv15/4D/15.1/Save-as-Value-or-Reference.300-2679511.ja.html
新しい設計では,ポップアップメニュー・コンボボックスの選択項目は,配列ではなく,リストで供給します。
注記: このこと自体は以前のバージョンでもできました。
その場合,暗示的にLIST TO ARRAYが効いていました。
http://doc.4d.com/4Dv15/4D/15.1/LIST-TO-ARRAY.301-2685277.ja.html
特に変数の型を宣言しなかった場合は旧来の動作となり,myArray は文字型の配列と推定されます。
しかし,C_TEXT(myArray) と宣言してあれば,新しい動作となり,選択した項目の値が自動代入されるテキスト変数としてポップアップメニューが働きます。
さらに,C_LONGINT(myArray) と宣言し,新プロパティの「関連付け」を「参照番号」にすれば,選択された項目の参照番号が代入されるようにすることもできます。
配列を使用しない,新しい仕様は,以前のものと互換性がありませんが,ずっとコーディングがシンプルになるはずです。
新しいフォームでポップメニューを使用する機会があったら,試しに使ってみるのはいかがでしょうか。
HDI例題は,こちらにあります。
http://library.4d-japan.com/SAMPLE_DATABASES/4D/4D_v14/demo_dbs_hdi/HDI_SetupAchoiceList.zip
http://library.4d-japan.com/SAMPLE_DATABASES/4D/4D_v14/demo_dbs_hdi/HDI_SaveAsReference.zip
これまで,ポップアップメニュー・コンボボックスは「(文字型の)配列」をデータソース("変数")とするのが常でした。
そのような場合,選択された項目は myArray{myArray} といった感じで参照することになります。
v14以降,こうした「リスト系」のオブジェクトに文字型あるいは数値型の変数(つまり配列ではない)が指定できるようになりました。
http://doc.4d.com/4Dv15/4D/15.1/Save-as-Value-or-Reference.300-2679511.ja.html
新しい設計では,ポップアップメニュー・コンボボックスの選択項目は,配列ではなく,リストで供給します。
注記: このこと自体は以前のバージョンでもできました。
その場合,暗示的にLIST TO ARRAYが効いていました。
http://doc.4d.com/4Dv15/4D/15.1/LIST-TO-ARRAY.301-2685277.ja.html
特に変数の型を宣言しなかった場合は旧来の動作となり,myArray は文字型の配列と推定されます。
しかし,C_TEXT(myArray) と宣言してあれば,新しい動作となり,選択した項目の値が自動代入されるテキスト変数としてポップアップメニューが働きます。
さらに,C_LONGINT(myArray) と宣言し,新プロパティの「関連付け」を「参照番号」にすれば,選択された項目の参照番号が代入されるようにすることもできます。
配列を使用しない,新しい仕様は,以前のものと互換性がありませんが,ずっとコーディングがシンプルになるはずです。
新しいフォームでポップメニューを使用する機会があったら,試しに使ってみるのはいかがでしょうか。
HDI例題は,こちらにあります。
http://library.4d-japan.com/SAMPLE_DATABASES/4D/4D_v14/demo_dbs_hdi/HDI_SetupAchoiceList.zip
http://library.4d-japan.com/SAMPLE_DATABASES/4D/4D_v14/demo_dbs_hdi/HDI_SaveAsReference.zip
miyako- 投稿数 : 468
登録日 : 2016/07/05
Permissions in this forum:
返信投稿: 不可
|
|