Ersetzt mir FormCloseQuery die Punkte OnClose und OnDestroy,
Nein. OnCloseQuery ist diesen vorgeschaltet.
OnClose und OnDestroy werden allerdings dann nicht mit besonderer Behandlung benötigt, solang es ausschließlich um das von Dir beschriebene Problem geht.
Zitat:
... oder muss ich die dann weiterhin verwenden?
Das "muss" hängt davon ab: Müssen beim Beenden des Programms abschließend noch instanziierte Objekte freigegeben und/oder evt. geöffnete Files etc. geschlossen werden, dann muss das natürlich spätestens in der Methode des OnDestroy-Ereignisses passieren. Entsprechendes gilt für evt. benötigte andere abschließende Aufgaben in der Methode des OnClose-Ereignisses. Zu beiden gelangt der weitere Ablauf ja einmalig und zwar nur dann, sobald der Var-Parameter CanClose in der Methode des OnCloseQuery-Ereignisses auf TRUE gesetzt worden ist (oder ggf. OnCloseQuery gar nicht behandelt werden würde, was einem CanClose=TRUE entspricht).