v15以前に作成されたバイナリモードのリストボックスは,テキストのレンダリングにGDIを使用するようになっています。v16以降に作成されたものはDirectWriteを使用します。これは内部的なプロパティ設定であり,ドキュメントされていないデータベースパラメーター107
以外では読み書きすることができません。
19r3以降,高解像度ディスプレイを想定したデータベース設定「WindowsでのDirectWriteの使用」を有効化することができるようになりました。ただし,前述した「v15以前に作成されたバイナリモードのリストボックス」にはこの設定が適用されません。そのため,テキストが部分的にGDIでレンダリングされる,という状況が生じ得ます。たとえば,DirectWriteが有効なオブジェクトは絵文字がカラーで表示されるのに対し,GDIを使用しているリストボックスだけはモノクロで表示されるかもしれません。
19r8以降,クライアント/サーバー版またはリモートデータストアのエンティティセレクションはadd()
やminus()
を実行した場合,entitySelection.isOrdered()
がTrue
を返すようになりました。内部的にインデックスクエリと該当するセット演算を実行するようなクエリも同様です。エンティティセレクションの並び順が保持されることにより,さらに直感的なインターフェースがORDAで提供できるようになりました。
コレクション型はポインターをサポートしていますが,Find in array
とは違い,collection.indexOf()
はポインターのサーチをサポートしていないことに留意が必要です。位置をサーチできるのは下記のデータ型です。
フォームイベントのOn Getting Focus でALERT
を実行した場合,フォーカスを失ったテキスト入力オブジェクトがリドロー表示される前にアラートが表示されることになります。これはフォーカスを失ったオブジェクトの値をOn Getting Focus で更新した場合に画面がちらつくことを防止するための措置であり,仕様です。フォーカスの移動と同時にアラートを表示したいのであれば,On Getting Focus でALERT
を実行するのではなく,CALL FORM
やSET TIMER
などの非同期コマンドを使用し,フォーカスの移動とは別のイベントサイクルでモーダルダイアログを表示することを検討してください。
プロジェクトモードでは,階層リストなどのフォームオブジェクトにプロパティリストで選択/除外/指定リストを設定した場合,フォームの.4DForm ファイルにリストのlists.json に対する参照がJSONポインターで追加されます。
"list": {"$ref": "/SOURCES/lists.json#/MyList"}
フォームがロードされると,リストの参照もJSONポインター経由でロードされます。リスト名ではなく,参照でリストがロードされるため,フォーム実行時にOBJECT Get list name
を実行した場合,""
が返されます。これは仕様です。
なお,フォームエディターを使用せず,直接フォームの.4DForm ファイルを編集することもできます。
"list": "MyList"
この場合,JSONポインターの参照ではなく,名前でリストがロードされることになります(19r8以降)。
リストボックスには「ヘッダーを表示/フッターを表示」というプロパティがあります。バイナリモードでは,このプロパティを選択しなかった場合,OBJECT SET VISIBLE
はヘッダーやフッターに対して効果がありません。
プロジェクトモードでは,showHeaders
プロパティをfalse
に設定した場合,オブジェクトはデフォルトで表示されませんが,OBJECT SET VISIBLE
でヘッダーやフッターを表示することができます。これは仕様です。