Mac版の「名前を付けて保存」ダイアログでは,キーボードショートカットの編集メニュー(コピー・カット・ペースト)が使用できません。これは仕様です。4Dのメニューは,独自のコードを実行するようにカスタマイズされているため,Cocoaの標準アクションと互換性がありません。ファイル名のコピー&ペーストには,コンテキストメニューを使用してください。
Webエリアがページを読み込んでいる間にフォームを閉じたり,フォームのページを切り替えたりすることがないようにしてください。Windowsの場合,タイミング次第ではアプリケーションがクラッシュするかもしれません。WebエリアでURLを開いた場合,On End URL Loading
イベントが発生するまでウィンドウが閉じられることがないように対策を講じる必要があります。
Windows版のマルチスタイルテキストのコンテキストメニューでフォントサイズ(たとえば15
)を選択した場合,ソースコードのHTMLには別の数値(たとえば20pt
)が挿入されます。これは仕様です。 Macでは,フォームのフォントサイズとspan
に書き込まれるフォントサイズの値が一致しますが,Windowsでは72/96
倍の値になります。span
には,4Dのフォントサイズではなく,システムのフォントサイズが記録されるようになっているためです。
フォームのDPIは,プラットフォームに関係なく72
です。フォームエディター等でフォントサイズを20
(つまり20px
)に設定した場合,システムのDPIが72
であるMacでは20pt
のテキストが表示されますが,システムのDPIが96
であるWindowsでは15pt
のテキストが表示されます。マルチスタイルテキストのソースコードには,システムのフォントサイズ(Windowsであれば15pt
)が記録されることになります。
v12でマルチスタイルテキストが追加されたとき,ソースコードにシステムのフォントサイズを記録することにしたのは,明らかに悪い決定でした。クロスプラットフォームの振る舞いではないからです。しかし,過去のバージョンで作成されたアプリケーションに配慮し,現在も上述したような仕様となっています。
Googleのブログで説明されているように,組み込みレンダリングエンジンにブラウザの操作を模倣させてGoogleサービスにログインすることはできなくなりました。Googleユーザー認証には,実際のブラウザを使用するか,OAuth 2.0の手順を踏む必要があります。WebエリアでGmailなどのサービスにログインを試みた場合,「このブラウザまたはアプリケーションは安全ではない可能性があります」というエラーメッセージが表示され,先に進むことができません。これは仕様です。
Write Proエリアのツールバーウィジェット(WP_Toolbar
)は,内部的にOBJECT Get pointer
でサブフォームコンテナのバインド変数を参照しているため,サブフォームのデータソースに変数ではなくオブジェクトのプロパティ(例:Form.wp
)が設定されている場合,ポインターの逆参照に失敗し,初期化を正常に完了することができません。Write Proエリアには,変数(例:wpArea
)を使用する必要があります。これは仕様です。
ORDAにおける楽観的レコードロックは,内部的なスタンプに支えられていますが,トランザクション中に作成されたエンティティのインスタンスは,すべて同一のレコードからコピーされるので,スタンプの比較による排他制御は意味をなしません。
トランザクション中でなければ,dataClass.get()
のようなコマンドで同一レコードから複数のエンティティを作成した場合,一方をentity.save()
した後に他方をentity.save()
しようとすると「スタンプが変更されたので保存できない」というエラーが返されますが,トランザクション中であれば,同じことをしてもエラーが返されずに両方のエンティティが保存できます。これは仕様です。
18r4以降,ODBCドライバーのインストール中にシステムエラー126
が返されるかもしれません。エラーの内容は「4DODBC.dllがみつかりません」というものです。そのような場合,Visual Studio 2019の再配布パッケージ(vcredist
)をインストールしてみてください。
プロジェクトモードで作成したリストボックスは,デフォルトでカラム自動リサイズが有効にされており,カラムの最小幅は0
,最大幅は32767
となっています。そのため,リストボックスを水平方向に限界まで縮小してから拡大した場合,1個を残してカラムが表示されなくなるかもしれません。カラム自動リサイズが機能するためには,リストボックス特有のプロパティが適正にセットされている必要があります。