Delphi6Proを使用しています。アプリケーションが確実にシャットダウンしているが、フォームが破棄される前に発生するイベントが必要です。メインフォームのWndProc()でWM_QUITメッセージをトラップすることを考えましたが、WM_QUITメッセージが表示される前にフォームが破棄され始めたため、機能しませんでした。イベントのシャットダウンチェーンのこの時点でコードを実行するために使用できる標準のDelphiイベントがあるかどうか疑問に思いましたか?メインフォームのFormClose()イベントは起動が保証されておらず、FormDestroy()イベントが遅すぎるため、使用できません。何か案は?
2785 次
2 に答える
14
メッセージループの実行を停止するためのシグナルのように、メッセージがメソッドにWM_QUIT
到着することはありません。したがって、通常、メッセージはウィンドウプロシージャにディスパッチされません。WndProc()
WM_QUIT
あなたが求めている特定のイベントはありません。ただし、できることは、プロジェクトの .dpr ファイルを開き、Application.Run
exit の呼び出しの後に必要なコードを追加することです。メッセージ ループは実行されなくなりましたが、 オブジェクトApplication
とMainForm
オブジェクトはまだ解放されていません。
于 2011-10-11T00:04:26.647 に答える
9
これを行う最善の方法 (そして、私は長年にわたってこれを検討してきました) は、SysUtils.pas の AddTerminateProc() ルーチンを介してプロシージャを接続することです。これは毎回機能し、私は何年も使用しています(タスクマネージャーでプロセスを強制終了しない限り)。
于 2011-10-11T03:13:39.807 に答える