変数宣言のvar
シンタックスにおいて型指定は任意です。型指定を省略した場合はVariant
となります。
var $myText : Text //テキスト型
var myDate1; myDate2 : Date //日付型
var $myFile : 4D.File //オブジェクト型4D.Fileクラス
var $myVar //バリアント型
シンタックスチェックは三項演算子の第1パラメーターが Truthy あるいは Falsy であることをチェックしますが,第2および第3パラメーターの互換性はチェックしません。これは仕様です。代入文の右オペランドに三項演算子を記述する場合,この点に留意する必要があります。
NetKit のOffice365..mail.getFolderList()
関数は,search
オプションをサポートしていますが,メールフォルダーの検索はできません。これは仕様です。search
オプションをサポートしているのはdirectoryObject
タイプのエンティティですが,メールフォルダーはそれに該当しないためです。
倍長整数型の上限値はMAXLONG
です。これを超える値を代入した場合の結果は未定義であり,実装依存となります。メソッドエディターに入力した数値リテラルは実数型であるため,倍長整数型に加算した結果は実数となります(Integer+Real=Real)。この結果を倍長整数型に代入しようとした場合,実数から倍長整数の型変換が実行されることになります。Macでは符号が反転して負の値が返されるかもしれません。Windowsでは0
が返されるかもしれません。一方,倍長整数に倍長整数を加算して上限値を超えた場合,結果は倍長整数なので,オーバーフローした値は倍長整数型の下限値に続きます。これは仕様です。
データストアクラス(Entity, EntitySelection, DataClass)のメンバー関数は local 指定しなければサーバー側で実行されますが,オブジェクトまたはコレクションにクライアント/サーバー環境でネイティブオブジェクトをカプセル化して返すことはできません。これは仕様です。ネイティブオブジェクトには,Entity, EntitySelection, DataClass, DataStore, Pointer, File, Folder, CryptoKey, WebServer などが含まれます。
近年のWebブラウザおよびレンダリングエンジンは,window.origin
でページのオリジンを参照することができなくなっています。たとえば,v19の統合Webエリアでファイルを開いた場合,window.origin
はfile://
を返しますが,v20の統合Webエリアでファイルを開いた場合,window.origin
はnull
を返します。現行のAPIはwindow.location.origin
です。
https://stackoverflow.com/questions/55451493/what-is-window-origin
マウス等のデバイス操作によるスクロールイベントは,マウスポインターの直下にあるアクティブなオブジェクトに送信され,そのオブジェクトがイベントを処理しない場合,その直下にあるオブジェクトに伝播します。v18以降,ホイールイベントを処理しないオブジェクト(ボタンなど)については,イベントが親オブジェクト(サブフォームコンテナ)に伝わるよう動作が見直されました。
リストボックスやテキスト入力オブジェクトなど,ホイールイベントに対応しているオブジェクトについては,イベントは親オブジェクトに伝播しないので,サブフォーム内でマウスポインターの直下にこれらのオブジェクトがある場合,そこからサブフォーム自体をスクロールすることはできません。
プロジェクトモードでは,フォームのプロパティ全般を.cssファイルで定義することができます。Webページのそれとは違い,フォームオブジェクトのプロパティ全般にスタイルシートが使用される点に留意してください。
スタイルシートは,フォームを開いたタイミングで一度だけ評価されます。つまり動的なものではありません。たとえば,下記のような.cssを記述し,macOSのダークモードとライトモード向けに暗いブルーと明るいブルーを設定した場合,モードの切り替えに応じてウィンドウの背景色やフォントカラー(この例ではautomatic)は動的に変化しますが,オブジェクトの背景色が動的に変化することはありません。これは仕様です。
@media (prefers-color-scheme: light){
.blue {
fill: #98bfe0;
stroke: automatic;
}
}
@media (prefers-color-scheme: dark){
.blue {
fill: #344a6d;
stroke: automatic;
}
}
Logs フォルダーには,プロジェクトが使用するすべてのログファイルが格納されます。 v18以降,このフォルダーはデータファイルと同階層に作成されるようになりました。
v17以前の Logs フォルダーはストラクチャファイルと同階層に作成されました。ビルド版アプリケーションの場合,通常は書き込み禁止であるディレクトリにコンパイルされたストラクチャファイル( .4DC )またはパッケージされたプロジェクトフォルダー( .4DZ )が置かれます。ログファイルは,ストラクチャファイルではなく,データファイルと同階層に作成したほうが実際的です。データファイルは基本的に書き込みができるディレクトリに作成されるからです。
Logs フォルダーのパスは,下記いずれのコマンドで取得することができます。
上記の Logs フォルダーとは別に,Maintenance & Security Centerが出力するメンテナンスログファイルを記録するための Logs フォルダーが存在します。こちらのフォルダーは,Get 4D folderからパスが返されるユーザー設定フォルダーに作成されます。なお,本来の Logs フォルダーが使用できない場合,プロジェクトが使用するログファイルもこちらのフォルダーに記録されます。