Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi中是否有Java侦听器原则的等价物?_Java_Delphi_Events - Fatal编程技术网

Delphi中是否有Java侦听器原则的等价物?

Delphi中是否有Java侦听器原则的等价物?,java,delphi,events,Java,Delphi,Events,我只是对这个很好奇。我知道在Delphi中定义事件的两种方法,使用回调原则和windows消息原则 但是,消息原则不是面向对象的,回调只适用于一个实例 我希望有一个很好的解决方案,在一个事件中,两个不同的对象可以在事件触发后执行一个操作 在Java中,我可以简单地添加另一个侦听器 有没有人知道德尔福中有什么类似于这个好听众原则的方法?这些也被称为多播事件,艾伦·鲍尔(Allen Bauer)写了一篇很好的文章,题为《给这个话题提供很好的报道》 简言之,多播事件不像Java C#那样被烘焙到语言/

我只是对这个很好奇。我知道在Delphi中定义事件的两种方法,使用回调原则和windows消息原则

但是,消息原则不是面向对象的,回调只适用于一个实例

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

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


有没有人知道德尔福中有什么类似于这个好听众原则的方法?

这些也被称为多播事件,艾伦·鲍尔(Allen Bauer)写了一篇很好的文章,题为《给这个话题提供很好的报道》


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

已有一些指向现有多播实现的附加链接。

实际上,这是一种称为observer或listener()的设计模式。我想,您可以这样编写对象的实现:您可以注册一个观察者列表,这些观察者可以收到代码中任何更改的通知。

谢谢,在Delphi中,multi-cast events是它的术语。太糟糕了,它没有包含在语言/IDE中。请查看
TApplicationEvents
组件。它使用多播事件,而不使用泛型。当然,但最好使用本机语言支持的标准解决方案。