Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there an equivalent in Delphi for the Java listeners principle?

I'm just curious on this one. I know two ways of defining events in Delphi, using the callback principle, and the windows messages principle.

However, the messages principle is not object-oriented, and the callbacks are only suited for one instance.

I would like a nice solution for having one event, where two different objects can perform an action after the event fires.

In Java, I could simply add another listener.

Does anyone know any equivalent approach in Delphi to this nice listener's principle?

like image 642
Geerten Avatar asked Aug 29 '11 09:08

Geerten


1 Answers

These are also known as multi-cast events and Allen Bauer wrote a nice article titled Multicast events using generics giving good coverage of the topic.

In short, multi-cast events are not baked into the language/framework like in Java C#, but can be simulated with some extra work. The introduction of generics has made this somewhat simpler.

like image 170
David Heffernan Avatar answered Sep 28 '22 13:09

David Heffernan