デバッガーのウォッチエリアには「式を挿入」することができます。20 R7以降のフィーチャーリリースではリクエストに応え,保存ボタンをクリックしなくても,自動的に設定が保存されるようになります。
デバッガー/リモートデバッガーの設定は,カレントユーザー毎(userPreferences.{user})に管理されています。
拡張された仕様では,メソッド/関数毎に式がセーブ/ロードされるようになります。つまり,別のコンテキストで開いたデバッガーのウォッチエリアには表示されません。デバッガーを開いたメソッド/関数に関係なく,特定の式をウォッチエリアに追加したい場合,Xcode/Visual Studioなどの代表的なIDEに準拠し,その式をデバッガーのウォッチエリアに「ピン」留めします。
プロジェクトモードでは,フォームオブジェクトのプロパティをCSSファイルで管理することができます。CSSは,HTMLを修飾するための言語として有名ですが,4Dの場合,フォームオブジェクトの属性つまりプロパティ全般をCSSで設定します。
たとえば,下記の要領でボタン・テキスト・入力オブジェクトのフォント名をまとめて設定することができます。
button,text,input {
font-family: Helvetica Neue;
font-size: 20px;
}
CSSのルールによれば,オブジェクトタイプ(HTMLの要素セレクターに相当)よりもオブジェクト名(HTMLのIDセレクターに相当)のほうがスペシフィシティ(詳細度)が高いので,プロパティリストに値が入力されていると,CSSはオーバーライドされ,レンダリングに反映されません。プロパティリストに入力された値はcontrol キーを押しながら項目名をクリックすることでクリアできます。
フォント名はfont-family
で指定しますが,システムフォントは自動スタイル経由で,つまりfont-theme
でnormal を指定することにより,間接的に指定します。
button,text,input {
font-theme: normal;
}
つまり「システムフォント」「system font」などの”フォント名”をfont-family
に指定するのは間違いです。ただし,CSSやプロパティリスト(.4DForm ファイル)でフォント名が特に指定されていなければ,結果的にシステムフォントが採用されます(ACI0104997の注記を参照)。
4D Web Serverの予約されたURL(いわゆるマジックURL)のうち,4DCGI
は特別な意味を持たず,実質的に無効となっています。
2003以前のバージョンでは,4DCGI
で始まるURLをリクエストすることにより,On Web Authentication およびOn Web Connection データベースメソッドを実行させることができました。2004以降,何であれ「未知のURL」つまりWebフォルダー内のリソースにマッチしないURLは,On Web Authentication およびOn Web Connection データベースメソッドを実行するので,4DCGI
で始まるURLに特別な意味はありません。4DCGI
の仕組みは,ハッキング防止のために残されていますが,実際には「未知のURL」と同じ動作になります。
On Mouse Move フォームイベントはフォームオブジェクト上でマウスポインターが動いた場合に加え,control shift alt などのモディファイアキーが押された場合にも発生します。たとえばテキスト入力オブジェクトがフォーカスされた状態で標準アクションのselectAll
を実行した場合,On Selection Change イベントだけが発生しますが,control/command+A を入力した場合,On Selection Change とOn Mouse Move の両方が発生します。これは仕様です。
リストボックス列特有のプロパティに関するドキュメントには,データソースの値が「On Display Detail イベントで計算されます」と記述されていますが,これはリストボックスの列ではなく,リストボックス全体に対して発生するフォームイベントのことを指しています。
フォームエディターでリストボックスの列を選択した場合,プロパティリストにフォームイベントのOn Display Detail は表示されません。プロジェクトモードであれば,.4DForm ファイルを編集することにより,列のレベルでOn Display Detail イベントを有効にすることができ,オブジェクトメソッドで 処理できるようになりますが,これは正式にサポートされている仕様ではないことに留意してください。
列のレベルでOn Display Detail が発生し,バイナリモードではこれを無効にできないのは,一種の不具合(ACI0099570, ACI0100429)ですが,既存のアプリケーションに与える影響を考慮し,動作はそのまま残されています。プロジェクトモードでは,フォームのソースコードを書き換えることにより,プロパティリストでは選択することができないはずのイベントを強制的に有効化することができますが,そのようにしてドキュメントに明記されていない歴史的な動作を意図的に利用することは勧められていません。