Forum: Cross-Platform-Entwicklung
by CHackbart,
21. Aug 2019
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 procedure TPlatformCocoa.Terminate;
begin
FRunning := False;
FTerminating := True;
...
Forum: Cross-Platform-Entwicklung
by CHackbart,
13. Dez 2016
Eine Kleinigkeit habe ich hier noch. Aus unerklärlichen Gründen geht unter Delphi Berlin der Spotlightmenu Eintrag nicht.
Abhilfe schafft folgender Code in
procedure TPlatformCocoa.CreateOSMenu(AForm: TCommonCustomForm; const AMenu: IItemsContainer);
if J = VisibleItemCount - 1 then
begin
LNewMenu := NewNSMenu(SSpotlightFeature);
...
Forum: Cross-Platform-Entwicklung
by CHackbart,
3. Jun 2014
Das ist so auch nicht ganz korrekt. Probiers mal so:
var ServicesMenu: NSMenu;
...
Services := AppItem.submenu.itemAtIndex(mnuServices.Index);
ServicesMenu := TNSMenu.create;
ServicesMenu := TNSMenu.Wrap(ServicesMenu.init);
Services.setSubmenu(ServicesMenu);
NSApp.setServicesMenu(ServicesMenu);