4D-JUG
Would you like to react to this message? Create an account in a few clicks or log in to continue.

【小技】ポップアップやコンボボックスに配列を使用しない

Go down

【小技】ポップアップやコンボボックスに配列を使用しない Empty 【小技】ポップアップやコンボボックスに配列を使用しない

投稿 by miyako 2016-08-22, 2:25 pm

小技といっても,ドキュメントに書いてあることですが,ベテラン・デベロッパーには,ちょっと新鮮な情報かもしれません。

これまで,ポップアップメニュー・コンボボックスは「(文字型の)配列」をデータソース("変数")とするのが常でした。

そのような場合,選択された項目は 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

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

トップに戻る


 
Permissions in this forum:
返信投稿: 不可