Delphi中的信号和插槽实现?
搜索多播事件。这里有一些实现,例如
- http://www.deltics.co.nz/blog/?p=137
- http://blogs.embarcadero.com/abauer/2008/09/03/38867
- http://www.codebot.org/delphi/?doc=9568
他们中的一些需要仿制药,所以是d> 2009年只。
上添加了建议方法的混合.TApplicationEvents也使用eventsink。 –
@Downvoter:我曾尝试将TApplicationEvents用于我自己的多播事件。不幸的是,它的设计大部分是不可重用的,就像大多数的VCL一样。 : -/ –
虽然您可以自己实现多播事件,但它们并不直接受到语言支持,与C#和VB.NET不同。缺乏语言支持使得任何模仿多播事件的尝试都相当笨拙。有趣的是,C++缺乏对信号和插槽的支持,Qt解决方案在编译工具链中包含额外的过程,Meta Object Compiler。
更重要的是,* VCL *和* IDE *不支持多播事件的任何实现,因此使用笨拙。这种语言可以用来实现很好的多播事件,甚至可以实现全面免注册的“信号和插槽”事物(使用RTTI属性)。使用运算符重载可以使C#语法几乎工作。 –
非多点传送事件处理是内置的。它只是需要附加组件的多点传送部分。 –
我在https://bitbucket.org/MX4399/multicast-events-using-generics – MX4399