Application.Terminate ruft die
API-Funktion PostQuitMessage auf welche eine WM_QUIT Message in der Message-Queue ablegt, und somit dafür sorgt, dass das Programm beendet wird. Das OnClose Ereignis wird aber durch die WM_CLOSE Message ausgelöst. D.h. bei einem Aufruf von Application.Terminate kommt keine WM_CLOSE Message an und es wird somit auch kein OnClose-Ereignis ausgelöst.