実数の計算は,一般の算数とは違うことに留意してください。たとえば,下記の計算は-0.1
になりそうなものですが,実際にはそうではありません。これは仕様です。 IEEE 754
ALERT(String(64-64.1))
コレクション/エンティティセレクション型リストボックスのカレントの項目/カレントの項目位置プロパティは,ユーザーによるクリック操作や矢印キーの入力に応じて自動的に更新されるようになっています。
リストボックスに表示されたブール値のチェックボックスを直接クリックした場合,リストボックスのハイライト状態は変化しません。この点は,配列型を含むすべてのリストボックスに共通です。コレクション/エンティティセレクション型リストボックスの場合,項目をクリックしたことにより,チェックボックスの表示された行がカレントの項目になります。選択された項目プロパティは,リストボックスのハイライト状態と対応しており,チェックボックスの直接クリックによって変化しません。これは仕様です。
(カレントの項目は)ユーザーによって選択されたコレクション要素/エンティティが割り当てられる変数あるいは式を指定します。
不自然に感じるかもしれませんが,チェックボックスを直接クリックした場合,値が代入されるのはクリックした行であり,その行は選択されないので,カレントの項目が選択された項目に含まれない,という特殊な状況が生じ得ます。シングルクリック編集やドロップダウンメニューが設定されたセルを直接クリックした場合も同様です。
矢印キーは,カレント項目ではなく,最後に選択した行を起点としているため,上述した特殊な状況で矢印キーを使用すると,カレント項目から離れた行が選択されて新しいカレント項目になるかもしれません。これも仕様です。もし,これが望ましい動作でなければ,チェックボックス・ドロップダウンメニュー・シングルクリック編集と同時に行も選択するようにコーディングすることができます。
Webエリアは,フォームエディター上のオブジェクト配置に関係なく,常にフォームの最前面にレンダリングされます。過去バージョンでは,Webエリアの前にボタンなどのオブジェクトを配置して,ドラッグ&ドロップなどのイベントを簡易的に処理することができました。Webエリアに対するドラッグ&ドロップは,透明ボタンなどではなく,WebエリアとJavaScriptで処理することが必要です。
プロジェクトモードモードでは,.4DProject ファイルではなく,プロジェクトフォルダーと同じ階層にあるサーバー証明書(key.pem cert.pem)が使用されます。アプリケーションをビルドした場合,プロジェクトフォルダーは.4DZ
ファイルになりますが,プロジェクトフォルダーと同じ階層にあるサーバー証明書は自動的にコピーされません。これは仕様です。
ビルド後に証明書ファイルを.4DZ
ファイルと同じ階層にコピーすることもできますが,Mac版の場合,それではコード署名をやり直す必要が生じるので,デフォルトの検索パスに依存するではなく,WEB Server
コマンドのcertificatesFolder
プロパティで証明書ファイルのパスを明示的に指定することが推奨されています。
macOS 12 Montereyでは,キーボードショートカットの処理が改良されたようです。メニュー項目にキーボードショートカットの「command+0」を設定した場合,AZERTYキーボードを使用中のBig Surでは画面に「command+0」と表示されましたが,Montereyでは「command+à」と表示されるようになりました。AZERTY配列の場合,「0」は「shift+à」なので,文字どおりモディファイアを押しながら「0」を入力するためには「shift」キーも必要になるはずですが,実際のキーコンビネーションに「shift」キーは含まれていなので,Montereyの表示(command+à)のほうが正確といえるかもしれません。
とはいえ,開発者がデザインモードやランゲージで「command+0」をショートカットに設定したのであれば,使用中のキーボードレイアウトに関係なく,メニュー項目に「⌘à」ではなく「⌘0」と表示されることが期待されると思われます。v19r6では,数字のキーボードショートカットは,AZERTY配列でも数字が表示されるように内部的に回避策を使用することになりました。
Windows版のピクチャボタン/ピクチャポップアップメニューは,ウィンドウが背面に移動しても非アクティブ状態になることはありません。これはプラットフォームの標準的な動作であり,仕様です。Mac版は,4
ステート画像が設定されていれば,4
番目のステート画像(loopBackToFirstFrame)に切り替わることでグレーアウトされます。
コレクション型リストボックスのカレント項目プロパティには選択行のオブジェクトが自動的に代入されます。選択行は,キーボード/マウス操作あるいはLISTBOX SELECT ROW
コマンドで変更することができます。
リストボックスのデータソースを直接ランゲージで操作するような場合は注意が必要です。たとえばcollection.remove()
でカレント項目をコレクションから削除した場合,画面上はリストボックスの当該行が消え,それが最下行でなければ,繰り上がった行が選択されてように表示されますが,カレント項目プロパティは更新されず,削除されたオブジェクトのままとなります。そのオブジェクトの位置を特定するためにcollection.indexOf()
を使用すると-1
(オブジェクトはコレクションに含まれないので正しい)が返されますが,この値をcollection.remove()
に渡すと相対指定となり,最終行が削除されることになります。
このようなケースでコレクション型リストボックスのカレント項目プロパティが更新されないのは仕様です。
リストボックスコマンドやユーザーインタフェースを介さずにコレクションを操作した場合,LISTBOX SELECT ROW
コマンドを使用し,明示的に行を選択するか,選択を解除する必要があります。コマンドを使用することにより,データソースとカレント項目プロパティの同期を取ることができます。