I've been working on a TTrayIcon component for FireMonkey, and for Mac OS since yesterday.
My work has yielded some successes. Specifically, I was able to retrieve the application's icon programmatically, and set it as a tray icon as well.
And unfortunately, XE2 crashed, and I lost the code! Now I have to rewrite the code again!
Here's what it looks like for now (Doesn't obey Mac OS UI guidelines yet)
In 2017, with the release of Delphi 10.2 Tokyo, Embarcadero introduced a specialized implementation of the Observer pattern into the System.Classes unit. While it has been in the wild for 9 years, it remains a "hidden" architecture for many, primarily because it serves as the invisible engine behind LiveBindings. Other than live bindings, you can also use the Observer pattern as a way to update component settings to the Windows registry, an .ini file, or persist it elsewhere.
System.Classes