Другой вариант - отправить сообщение wm_Close в application / application.mainform
PostMessage(Application.Handle,wm_Close,0,0);
или
PostMessage(Application.MainForm.Handle,wm_Close,0,0);
Это помещает запрос на закрытие в очередь сообщений, существующие сообщения, уже находящиеся в очереди сообщений, будут продолжать обрабатываться в первую очередь.