Does an implementation of the signals and slots mechanism for event dispatching exist for Delphi?
I spent some time a while ago getting Allen Bauer's Multicast Event code working. It has some limitations, but works well in my code. You can see the code here.
Of course, it only works in Delphi > 2009