Also ich würde das Fenster mit close schliessen. Denke, das Application.Terminate hier eher die brutale Variante ist und wahrscheinlich nicht alle Processe gelöscht werden. Die Grundsätzliche Reihenfolgw ist
self visible := false:
Query.close
Database.enabled := false
self.close;
Wahrscheinlich nimmst Du Terminate weil das Fenster sich sonst nicht schliessen lässt (Tipp ins blaue), aber da hangelt wahrscheinlich noch einer Verbindung. Durch das visible := false geht das Schliessen optisch etwas schneller, aber es wird alles lagsam aber korrekt abgebaut.
Grüße // Martin