我对此很好奇。我知道在Delphi中使用回调原理和Windows消息原理定义事件的两种方法。

但是,消息原理不是面向对象的,并且回调仅适用于一个实例。

对于一个事件,我希望有一个不错的解决方案,其中两个不同的对象可以在事件触发后执行操作。

在Java中,我可以简单地添加另一个监听器。

有谁知道在Delphi中有什么等效的方法可以实现这种出色的监听器原理?

最佳答案

这些也称为多播事件,Allen Bauer写了一篇很好的文章Multicast events using generics,很好地介绍了该主题。

简而言之,多播事件不会像Java C#那样被烘焙到语言/框架中,但是可以通过一些额外的工作来模拟。泛型的引入使这一过程变得更加简单。

09-27 05:13