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 minutes] 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 minutes] 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?

Another Week, Another Poll

[Estimated Reading Time: < 1 minutes] Last weeks poll asked which was your first Delphi version.  It may or may not come as a surprise that the results essentially provided a list of Delphi versions largely sorted by age. The one exception was that (of visitors to this blog) more gained their first Delphi experience from Delphi 2007 than from Delphi 2006, which would support the impression I am increasingly gaining of a resurgence in interest in Delphi having started in the last year or so.

MultiCast – Bug Fix

[Estimated Reading Time: 2 minutes] With apologies to those who have downloaded what I wrongly claimed was the “final” version a few days ago, I found an error in one of those last minute “improvements” I mentioned.  I also took the opportunity to incorporate a couple of refinements that others suggested (thanks CR). A new version is now available for download and contains the following fixes and changes: