バイナリモードのポップアップメニューには「非表示」というプロパティがあります。非表示のポップアップメニューは画面に描画されませんが,アクティブであり,クリック操作に反応します。そのようなフォームをプロジェクトに変換すると,当該プロパティは「レンダリングしない(display
)」というプロパティに引き継がれます。これは「表示状態(visibility
)」とは別のものです。「表示状態」が「非表示(hidden
)」のポップアップメニューは,非アクティブであり,必要に応じてオブジェクトを表示(OBJECT SET VISIBLE
)することができます。バイナリモードでの名称は「デフォルトで表示しない」でした。
現在は21
世紀ですが,SET DEFAULT CENTURY
のデフォルト設定は引き続き20
世紀(区切り年30
)となっています。これは仕様です。
日付の Internal date short special 表示フォーマットで21
世紀をデフォルトにしたいのであれば,コマンドに20
を渡す必要があります。20
世紀から21
世紀の日付を扱いたいのであれば,コマンドに19
と区切り年を渡す必要があります。コマンドに渡す値は「世紀」そのものではない点に留意してください。
v16以降,リストボックスを水平方向にリサイズした場合,リサイズ中は継続的に On Display Detail イベントが発生します。これは仕様です。すべての行を表示するためには,水平または垂直のリサイズ中にリストボックスのデータをリフレッシュする必要があります。v15には,垂直方向にリストボックスを拡大するとデータがキャッシュされていない行の内容が表示されないという不具合がありました。
コマンドでメニューを構築した場合,編集メニューのペースト操作でリストボックスのセルにテキストをペーストした直後に On Data Change イベントが発生するかもしれません。メニュー項目には「イベントを発生されない」というプロパティがありますが,コマンドで追加したメニュー項目はデフォルトでこのプロパティが有効にされているためです。
コマンドで構築したメニュー項目には,下記の要領でプロパティを設定することができます。
SET MENU ITEM PROPERTY(menu ; line ; "4D_execute_without_validating"; True)
エンティティセレクションおよびカレントセレクションは,共通のアドレステーブルを使用してレコードを特定するようになっています。レコードが削除されると,空いたアドレスは再利用できるようになり,サイズが足りていれば,そこに新規レコードが保存されます。これは,エンティティセレクション/カレントセレクションを作成した後,その中に含まれるレコードを削除し,続けて新規レコードを保存した場合,エンティティセレクション/カレントセレクションの内容が入れ替わることを意味しています。マルチプロセスで環境でエンティティセレクションまたはカレントセレクションを保持している間に当該テーブルのレコードが他のプロセスに削除される可能性がある場合,この振る舞いを念頭に置いてアプリケーションを設計する必要があります。そのようなテーブルのレコードはすぐに削除するのではなく,削除フラグなどを活用し,メンテナンス業務の一環として整理することを検討できるかもしれません。
OPEN PRINTING JOB
で印刷ジョブを開始すれば,PRINT SELECTION
やPRINT RECORD
といった印刷コマンドを組み合わせて実行することができますが,PRINT LABEL
を混ぜることはできません。これは仕様です。PRINT LABEL
は内部的に印刷ジョブを開始するようになっており,毎回,単独で実行する必要があります。
Write Proドキュメントの用紙向きを切り替えても,wk page width
とwk page height
が入れ替わるわけではありません。これは仕様です。幅と高さは飽くまで用紙の寸法に基づいており,レンダリングモードのPortrait/Landscapeといった向きの設定やページの回転とは無関係です。
プロジェクトにメニューバー#1が存在せず,明示的にSET MENU BAR
を実行しなかった場合,ビルドしたMac版のアプリケーションはすぐに終了します。これは仕様です。