Monday, 24 September 2012

Delphi actions

I’ve got a bunch of Delphi articles on my web site, mostly from the halcyon days of international Delphi conferences and printed Delphi magazines. One of the old articles that still gets quite a few regular hits is the one on actions from the early part of this century. Given it was around a decade old and actions have recently been added into the FireMonkey framework in Delphi XE3 I thought it might be an idea to dust it down and update it a bit.

So I present my slightly shinier actions article: Actions, Action Lists and Action Managers for your delectation. I’ve tried to be reasonably thorough and certainly found a bunch of places where methods have moved from one class to another. And I’ve covered the FireMonkey action support, meagre as it may be.

By ‘meagre’ that I mean that we have action lists but not managers nor action bands. Also, FireMonkey actions are not equipped to find arbitrary action targets, which is why the collection of standard actions is rather underwhelming. Still, it’s a first pass, and when Delphi 4 introduced actions, things were pretty thin on the ground there too, so hopefully matters will improve in that regard.

Oh, in the process of updating the article I bumped into what certainly appear to be a bundle of bugs in certain aspects of the VCL action bands – they’re highlighted in the text.

If it looks like I’ve overlooked anything key or made a hash of understanding something in the current implementation, do be a good sport and let me know, won’t you? That way there’s a more than average chance of me getting it fixed.


  1. This is good. Very good initiative indeed. I wish more of the old Delphi programmers did this. Many articles wrote ten years before seems treasures with dust. But less of the new programmers have Indiana Jones curiosity now. :(

  2. Your link to is broken.

    1. Yeah, sorry. My web site has been hosed for a bit thanks to an ISP fubar - only noticed it last night.
      Hopefully should be back up in the next day or so, at which point the link will be operational again.

    2. Should finally be back now...