Years after Allen Bauer and a few others wrote about Delphi MultiCast events, the Spring4D framework now supports MultiCast events on 3 platforms:
- Win32
- Win64
- Mac OS x86
Depending on the platform, the minimum required Delphi version is this (the develop branch builds in Delphi XE6):
- Win32: Delphi 2010 and up.
- Win64: Delphi XE2 and up.
- MacOSX: Delphi XE2 and up.
There are plans for support on Mobile platforms, and Spring4D needs help with that:
- The Intel implementation is written in Assembly, and fast.
- The Arm compiler does not allow Assembly language for various reasons.
So there is a need for an ARM solution not based on assembly in the Delphi code, preferably as cross-platform as possible.Even when Embarcadero solves QC 101064: TRttiInvokableType.CreateImplementation, there might still be a need for a fast implementation (the x86 and x64 implementations are fast and with the growth of mobile, fast could be a big benefit). If you are interested in helping, or just lurking around:
- The current implementation of multi-cast events is in Spring.Events.pas.
- The unit-tests are in Spring.Tests.Base.pas.
Some background information about the articles by Allen Bauer, and people implementing multi-cast events themselves:
- The Oracle at Delphi » Multicast events using generics.
- The Oracle at Delphi » Multicast Events – the cleanup.
- The Oracle at Delphi » Multicast Events – the finale.
- delphi – Getting Allen Bauer’s TMulticastEvent working – Stack Overflow.
- Te Waka o Pascal · multicast events.
- Delphi VCL for Win32 – multiple event handlers – Stack Overflow.
- Delphi 7: very basic Implementing MultiCast Events for Win32 Delphi’s TDataset and TField Descendants.
- Limited to only TNofityEvent: Multicast Delegates (or Web-archived-version of Mulicast Delegates as codebot.org happens to be down every once in a while).
–jeroen
Filed under: Delphi, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Development, Software Development, Spring4D