Class Helpers On Trial

[Estimated Reading Time: 5 minutes] Class helpers (introduced in Delphi 2007 2006 2005 – thanks to Chris and Bruce for the corrections) seem to be cropping up more and more frequently in suggested work-arounds or implementation approaches.  I find this worrying given that this language feature has always come with the admonition from CodeGear that it isn’t advisable to use it! So why do people seem so keen on using them, and why shouldn’t they?

Exchange() – Epilogue and Smoketest

[Estimated Reading Time: 5 minutes] A colleague of mine directed me to a further minor refinement of the ‘final’ Exchange() code I posted the other day. The change is minor but yields a worthwhile performance improvement, but my main reason for bothering to post (yet!) another update is an excuse to introduce the testing framework I developed that allowed me to quickly assess any benefit.

An Exchange() For All

[Estimated Reading Time: 3 minutes] Following on from yesterday’s post, Barry Kelly (CodeGear engineer) kindly clarified a few points, one of which was that Generics support in Delphi 2009 won’t extent to unit procedures, only class methods, so speculation about a possible generic implementation of a Swap()/Exchange() routine was rendered largely academic. Not to be dissuaded I came up with this solution to meet my current and quite possibly future needs.

Generic Methods and Type Inferencing

[Estimated Reading Time: 7 minutes] In the new Delphi forums recently, Barry Kelly responded to a question about lambda expression syntax in Tiburón with this observation: This syntax needs type inference. Our compiler was not originally written to support type inference, but work to support type inference is orthogonal to supporting anonymous methods. …  you’ll need to provide the full declaration type, for now. In other words – as I understand it – Tiburón/Delphi 2009 will not (initially at least) support type inferencing.  To my mind this dramatically reduces the attractiveness of Generic Methods.

More Deltics.Forms Magic

[Estimated Reading Time: 6 minutes] Last time I introduced a bit of skullduggery with my Deltics.Forms unit as a way to easily “inject” a new TForm class into my projects.  We used this new class to add public property that we could use to add a size grip control to any form. This time we shall introduce some more code the Deltics.Forms unit in order to add some frequently useful capabilities to the Application object.

Poll Time Again

[Estimated Reading Time: < 1 minute] With Delphi 2009 literally just around the corner, I thought it would be interesting to see how it’s impending release is being viewed. As a result, the poll answers are a little wordy this week for which I apologise, but I thought it would be interesting to try and gauge a detailed view of how people view the new version and how it will impact them.

Tiburón Releases On Monday!(?)

[Estimated Reading Time: < 1 minute] eWeek have a detailed article with quotes, attributions and pricing in which they state an August 25th (next Monday, by my reckoning) release date for Delphi and C++ Builder 2009! The Delphi blog-sphere is probably going to go into meltdown with this news and speculation as to whether it is accurate or not.  The indications were that the release wasn’t far off, but it’s much sooner than I think many were expecting, myself included.  I am also somewhat surprised that we didn’t hear about it first from CodeGear directly, certainly confirmation (or clarification) now is quickly needed.

When Type(name)s Collide

[Estimated Reading Time: 4 minutes] It’s funny how this happens.  I was already intending to write about the way I have exploited like-type names to my advantage, and then noticed that the same subject cropped up recently in the re-invented Delphi forums.  In that instance, the issue though was a problem, and one that I’m sure many will be familiar with:  When is a TBitmap not a TBitmap? In my case, the question is: When is a TForm not TForm?