Zugegebenermaßen ist der Thread schon etwas älter, aber bei der neuen Version von Delphi ist mir etwas unangenehm aufgefallen.
Geht man über den Menüpunkt Anwendung beenden, wird diese terminiert und nicht geschlossen. Dadurch wird u.a. alles was on OnDestroy steht nicht ausgeführt.
Man muss also
Delphi-Quellcode:
procedure TPlatformCocoa.Terminate;
begin
FRunning := False;
FTerminating := True;
NSApp.Stop(nil); //***
end;
aus dem Terminate(nil) ein Stop(nil) machen. Das steht schon in einem älteren Report hier:
https://quality.embarcadero.com/browse/RSP-9723
Generell halte ich das was dort in TPlatformCocoa an Menüeinträgen zusammengezimmert ist ziemlich gewagt.
Christian