2011-07-22 54 views
4

是否存在Delphi的事件分派信号和插槽机制的实现?Delphi中的信号和插槽实现?

+0

非多点传送事件处理是内置的。它只是需要附加组件的多点传送部分。 –

+1

我在https://bitbucket.org/MX4399/multicast-events-using-generics – MX4399

回答

4

搜索多播事件。这里有一些实现,例如

他们中的一些需要仿制药,所以是d> 2009年只。

+0

上添加了建议方法的混合.TApplicationEvents也使用eventsink。 –

+0

@Downvoter:我曾尝试将TApplicationEvents用于我自己的多播事件。不幸的是,它的设计大部分是不可重用的,就像大多数的VCL一样。 : -/ –

2

虽然您可以自己实现多播事件,但它们并不直接受到语言支持,与C#和VB.NET不同。缺乏语言支持使得任何模仿多播事件的尝试都相当笨拙。有趣的是,C++缺乏对信号和插槽的支持,Qt解决方案在编译工具链中包含额外的过程,Meta Object Compiler。

+1

更重要的是,* VCL *和* IDE *不支持多播事件的任何实现,因此使用笨拙。这种语言可以用来实现很好的多播事件,甚至可以实现全面免注册的“信号和插槽”事物(使用RTTI属性)。使用运算符重载可以使C#语法几乎工作。 –

0

我前段时间花了一些时间让Allen Bauer的多播事件代码工作。它有一些限制,但在我的代码中运行良好。你可以看到代码here

当然,它只适用于德尔福> 2009