Hola,
Piensa que el método "Close" del formulario terminará por llamar a "Application.Terminate", pero, antes disparará el evento "OnClose" del formulario, sea este el principal o no, y además dará pie a la posibilidad de abortar el cierre de la aplicación en el evento "OnCloseQuery" del formulario principal, es decir, algo así sería posible usando el método "Close", pero no "Application.Terminate":
Código Delphi
[-]
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanCLose := Application.MessageBox('¿De veras quieres salir?',
'Confirma, por favor', MB_ICONQUESTION or MB_OKCANCEL) = IDOK;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ShowMessage('Se va a cerrar el formulario y la aplicación...');
end;
Es decir, haciendo uso del método "Close" puedes aprovechar los eventos "OnClose" y "OnCloseQuery", si esto te sirve de algo, claro está.