[Estimated Reading Time: 3 minutes] I was a little disappointed that the preview webinar this morning was little more than a re-run of the same content from a little over a week ago, albeit with some downloadable PowerPoint slides this time. It was at least an opportunity for some more Q&A and a couple of interesting Q’s got A’d.
[Estimated Reading Time: < 1 minute] Providing a little light relief after the rather heavy series of posts on multicast events, a colleague recently asked me what Tiburón actually means. So I looked it up. As well as being a town in California, it is also Spanish for shark. I don’t know which derivation inspired the team at CodeGear, but it does raise the possibility that here in Aotearoa we could perhaps be referring to the forthcoming release of Delphi as Mangō, as this is the Maori for “shark”. Some additional trivia – from the little that I have picked up of the Maori language, “nui” in a name implies “big” or “large”, so the place name Mangonui (which crops up in a few places here) means “big shark”.
[Estimated Reading Time: 5 minutes] Drawing this subject to a close (finally!), here’s the concluding post I promised, including the fully documented and finished implementation that has been serving me well for almost 2 years. The finished implementation incorporates a number of refinements to the core framework, and those are what we shall briefly look at in this final post.
[Estimated Reading Time: < 1 minute]
[Estimated Reading Time: 4 minutes] So far we’ve seen a multicast event implementation in (fairly limited) action, and dissected the core of it’s implementation, which was a fairly dry affair. I also demonstrated a flaw in the initial implementation – a susceptibility to objects adding handlers to events but not removing them when being destroyed. Before the .NET crowd get all smug, we should note that the relationship between an event source and it’s listeners is potentially problematic, in .NET also. Fortunately I devised a solution to the problem in my framework. The solution – rather neatly – was itself provided by a multicast event.
[Estimated Reading Time: < 1 minute] At the end of my last post I described a problem that arises if an object adds handlers to an event and is then destroyed without having removed those handlers. This video demonstrates that problem and also shows a solution provided by the multicast events framework itself.
[Estimated Reading Time: < 1 minute] My first poll looked ahead to the next version of Delphi, asking what we were looking forward to. It came as no real surprise to find Generics and Unicode leading the pack. So I thought I’d turn the perspective around to look in the opposite direction and find out where our pollsters (pollees?) are coming from, and what version of Delphi got them started. To keep the list down to a just barely manageable number I’ve “rolled up” some of the versions – so apologies if your specific version got mashed up with a neighbour.
[Estimated Reading Time: 8 minutes] Having covered some of the basic use of multicast events, in this second post I shall start to build the implementation. In this first iteration we will provide the basics of a multicast event – managing and calling multiple handlers and the ability to enable and disable an event. The test project used in the previous video demonstration may also now be downloaded for you to experiment with if you wish.
[Estimated Reading Time: < 1 minute] My second post on multicast events is now up, and here’s a video showing the basics. It was also an excuse to get to grips with the video capturing software – CamStudio – (and technique!), which proved to be a frustrating exercise to say the least, but I am quite pleased with the eventual results and plan to do more in the future.
[Estimated Reading Time: 4 minutes] I remember one of the things that got me excited when I first read about the as-then new fangled C# and .NET stuff coming out of Microsoft was the idea that a single event could have multiple handlers. Cutting a long and irrelevant story short, my interest in .NET waned, although my interest in multicast events did not. For a long time I was resigned to having to do without them, but then realised that this was a self imposed penury. So I got out my jail breaking toolkit (Delphi) and set about tearing down the walls of my prison. And here’s how I did it…