論理積演算子と比較演算子が併用された場合,左から右に向かって式が評価されます。演算子の種類による優先順位はありません。これは仕様です。たとえば
$boolean:=False
$text:="foo"
$result:=$text="" && $boolean=False
のようなコードを実行した場合,False
ではなくTrue
が返されます。
$result:=(($t="") && ($b=False))
$result:=((($t="") && $b)=False)
左から右に向かって式が評価されるため,論理積演算ではなく,False=False
という比較演算になっている点に注目してください。こうしたエラーを避けるため,明示的ばカッコを記述することが勧められています。
エンティティセレクション型のリストボックス列にThis.relatedEntity.objectAttribute.property
のようにリレーション属性とオブジェクト記法を組み合わせたORDAパスを記述した場合,ヘッダークリックによる並び替えで属性”objectAttribute.property”が見つからないというエラーが返されます。これは仕様です。ヘッダークリックによる並び替えは内部的にorderByFormula()
ではなくorderBy()
を実行しています。
純粋なORDAパスではなく,フォーミュラがデータソースに設定されているリストボックス列の並び替えは On Header Click イベントで実装する必要があります。
ペーストボードの管理で説明されているように,Pasteboard data size
は,下記のデータタイプ識別子をサポートしています。
上記に加え,TEXT
PICT
などの4文字識別子が「以前のバージョンの4Dとの互換性のために」残されています。TEXT
つまりText data
定数は,UTIのcom.apple.tradional-mac-plain-text
を指している点に留意してください。コピー元のアプリケーションがこのタイプのデータをペーストボードに転写していない場合,Pasteboard data size
は-102
つまり「データなし」を返します。これは仕様です。
Sequence number
から返されるシーケンス番号は,SAVE RECORD
で新規レコードを保存するたびにインクリメントされます。SQLのINSERT
やORDAのentity.save()
ではインクリメントされません。これは仕様です。
Write Proドキュメントには,既定の属性に加え,任意のカスタム属性を設定することができます。WP Import documentで.docx ファイルをインポートした場合,wk import log
属性に変換ログが記録されますが,これは任意のカスタム属性に分類されるため,WP GET ATTRIBUTES
で参照することはできません。これは仕様です。
フォームマクロを活用すれば,フォームエディターに対する操作はなんでも自動化することができます。マクロのonInvoke()
関数に渡されるForm Editor Macro Proxy オブジェクトの $editor を介して加えて変更はエディターに即反映されますが,直接 .4DForm ファイルに加えた変更はエディターに反映されません。これは仕様です。デザインモードでは,4Dが最前面に復帰したタイミングでソースファイルがリロードされます。
任意のタイミングでリロードさせたいのであればRELOAD PROJECT
を実行することができます。
19r3以降,クラスの計算プロパティが定義できるようになりました。計算プロパティはFunction get プロパティ名}
およびFunction set プロパティ名}
キーワードを使用して記述します。計算プロパティを読み書きすると,getter および setter(両方を合わせてアクセサー)と呼ばれる関数が評価されます。
エンティティのentity.fromObject()
は,クラスのプロパティをまとめて更新する関数です。したがって,getter で計算属性が設定されているデータクラスであれば,対応する setter も定義されていなければなりません。setter が定義されていない場合,entity.fromObject()
は属性を更新でないという趣旨のエラーを返します。これは仕様です。
WindowsプラットフォームでCEF版のWebエリアにバーチャルリアリティ系のWebサイト(キーボード操作で仮想空間の中を探索できるようなもの)を表示した場合,キーボード操作に対する反応がシステム版のWebエリアやMacと比べてずっと遅く感じるかもしれません。これは仕様です。
4Dには,ショートカットやOn Before Keystroke イベントなど,キーボード入力に対するフックが実装されているので,そのようなイベントはまず4Dに送られます。バーチャルリアリティ系のWebサイトは,イベント駆動ではなく,ループ処理の中で絶えずキーボードの状態をスキャンするように設計されているので,4Dから逐次イベント情報を受け取るような役割に向いていません。一般的に言って,そのようなサイトはブラウザに表示することが前提となっており,Webエリアの中に組み込んで実行することは想定されていないことに留意する必要があります。
v20では,Webエリアの新しい設定として,キーボードイベントを4D側では捕捉せず,直接Webエリアに送信できるようになる予定です。設定を有効にした場合,前述したようなパフォーマンスの問題は解消されますが,当該Webエリアを表示している間は,4Dのキーボードショートカットやキーボード入力系のフォームイベントなどがすべて無効になります。
リストボックスを垂直方向にリサイズした場合,表示される行の増加に伴い,On Display Detail イベントが発生しますACI0103758。これは仕様です。ACI0102316の不完全な修正により,リサイズ中にすべての行でOn Display Detail イベントが発生するようになりましたが,出現した行でイベントが発生するというのが本来の動作です(ACI0103725)。