FAQ

Startupメソッドが動作しません

ID148
カテゴリー4D v13関係
プラットフォーム

古いスタイルであるStartupメソッドは、4D v13からサポートされなくなりました。データベースメソッドの On Startup をお使いください。

4D v2以前では、Startupという特別な名前で作成したメソッドを起動時に呼び出すようにできました。しかし、4D v6以降はデータベースメソッドという特別なメソッドが用意され、Sutartupメソッドを使う必要は無くなりました。

こうした歴史的な4D v2以前の古いユーザのために、長い間互換性のために保持されてきたStartupメソッドを起動時に呼び出す互換性モードでしたが、4D v13においては使えなくなりました。そのため、4D v13にアップグレードして、起動時の処理がされないような時には、この歴史的に古いStartupメソッドが使われていないか調べてみてください。もし、Startupという名前のメソッドを見つけたなら、それを起動して初期設定などの処理がされるかを確認してください。もしStartupメソッドが問題なく動作するなら、On Startupデータベースメソッドに次のように記述することで、これまでと同様の動作をするはずです。

Startup

しかし、On Startupで古いStartupを直接起動するのには問題があるかもしれません。なぜなら、On Startupは、4D自身の初期化も含む重要なメソッドなので、できるだけ素早くかつエラーの無いように動作しなければなりません。On Startupで処理し続ける事の問題については、最後にリストしましたURLのドキュメントを参照してください。

こうした問題を避けるには、直接Startupメソッドを呼出すのではなく、別プロセスとして起動させるのが良いでしょう。そのためには、On Startupに次のように記述します。

$ref_proc:=New process("Startup";512*1024)

これでOn Startupとは別のプロセスでStartupが動作するので、On Startupは4D自身の支配下に戻されるようになります。こうした改修はStartupの処理について見直す良い機会なので、十分に検討する事をお勧め致します。

参考資料