The more things change, the more they remain the same...
No matter where I go, it seems that customer don't read manuals and readmes... That's one of my kind of favourite customers, when I have heavy workload and lots of work to do.
And why are they my favourite customers? It's because I don't have to rack my brains to figure out the answer, and thankfully, these customers provide some relief.
On a side note, I have been away for a while, and once things settle down, I'll return to my planned series of Adventures in translating Java to Delphi.NET.
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