ブログ

ご注意:
この情報は過去に書かれたブログ記事のキャッシュになります。最新の情報ではありませんのでご注意ください。
また、公開当時のキャッシュされたテキストのみを読めるようにした内容になっております。 公開当時の画像やデザイン情報がありませんので、デザイン上読みにくい部分がありますことをご了承ください。 なお、最新のブログはGitHubにて公開しています。

日付0000/00/00

On Startupデータベースメソッドは, 4Dの主要なアプリケーションプロセス(ユーザーモードと同じプロセス)が起動した直後に実行するべきコードを記述する場所です。アプリケーションのスタートアップは, このデータベースメソッドの終了をもって完了し, 正常な動作に移行します。したがって, DIALOGやMODIFY SELECTION, ADD RECORDなどのダイアログ待ちコマンドをOn Startupデータベースメソッドに記述するべきではありません。特にバージョン11.7以降, そのようなプログラムは挙動が不安定になったり, デザインモードに切り替えた途端にクラッシュするようなケースも報告されています。


起動時にダイアログを表示するのであれば, On Startupで新規プロセスを開始し, アプリケーションプロセス以外のユーザープロセスでDIALOGやMODIFY SELECTION, ADD RECORDなどのダイアログ待ちコマンドを実行するようにしてください。

なお, クラッシュが報告されたケースの詳細は次のとおりです。On Startupで新規プロセスを起動し, そのプロセスがPlain Windowでダイアログを表示した後, On Startupはダイアログを表示し, 自身もイベント待機を開始します。後に表示されたウィンドウ(アプリケーションプロセス)を閉じるとアプリケーションが不規則な仕方でクラッシュすることがありました。2枚目のダイアログを新規プロセスで表示し, On Startupが完了するように変更したところ, クラッシュの問題は完全になくなりました。