私のアプリケーションはいくつかの独立したフォームを生成します。一度作成されると、アプリケーションはそれらについて忘れてしまいます。すべてのアクションは、そのフォーム自体で処理されます。アプリケーションが閉じると、フォームも閉じます。RTSによって私は仮定します。これは、OnCloseイベントもOnDestroyイベントも起動されていないことを除いて、メモリリークが発生するという点で問題ありません。私はどのフォームが存在するかを管理することができますが(今のように)、実際にはアプリケーションはこれらのフォームを完全に忘れる必要があります。アプリケーションが終了すると、フォームにイベントが発生しますか
アプリケーションのメインフォームではないフォーム内で、アプリケーションが終了中であることを検出する方法はありますか?
アプリケーションが終了した場合、フォームのdtorが呼び出されなくても(たとえば、コードが 'halt'やExitProcess()など)、メモリリークは発生しません。そうです。それは別に、Destroyを呼び出さないようにしなければならない - アプリケーションはフォームのリストを保持し、アプリケーションの終了時にそれらをすべて破棄します。 –
@マーティン、あなたは一生懸命やって忘れてはいけません。私は 'Create'の引数として' nil'を使ってフォームを作成しました。デイヴィッドの答えは、これはあまり良いアイデアではないことを私に思い出させました:-) – Arnold