[Estimated Reading Time: 6 minutes] In this post we create a (very!) simple project, build it using Delphi (7) and run it. All with Azure DevOps.
[Estimated Reading Time: 6 minutes] The first in a series of posts exploring build and test automation for Delphi projects using Azure DevOps.
[Estimated Reading Time: 2 minutes] A quick post on a small but hugely useful little language feature in Oxygene… if expressions.
[Estimated Reading Time: 3 minutes] For some years now I’ve been running a Mac as my main development system, using Parallels Desktop to run Windows in VM’s on that hardware. I like the Parallels software, but not their licensing policy, which requires me to license each machine I use rather than the “No Nonesense” approach of licensing me, the user, which I find particularly annoying now that they have switched to a subscription licensing model. But, this didn’t used to be a problem until I got a second Mac last year with a MacBook Pro for development on the go, as well as continuing to use my iMac.
[Estimated Reading Time: 2 minutes] Andreas Hausladen has released his latest DevExtensions and IDEFixPack for Delphi 10.2, just the latest release of fixes for things that Embarcadero should have fixed before pushing the “It’s Ready” button.
[Estimated Reading Time: < 1 minute] My most recent posts have prompted a bit of discussion, and it seems some concern, regarding the implementation of Boolean values in Delphi. The concern at least I think is unwarranted, as long as you avoid explicitly comparing a Boolean value to the True constant and allow the compiler to logically evaluate the Boolean itself. But in the follow up investigations of one commenter (thank you Arthur), a further occurrence of the alternate -1 identity of True has been identified: Variants.
[Estimated Reading Time: 4 minutes] It has been observed that the Delphi documentation states that the constants True and False have the values 1 and 0 respectively, not the -1 and 0 that the default string conversions apply. This does actually make sense but also lays a trap for the unwary.
[Estimated Reading Time: 5 minutes] Jaap Van Goor was asking on FaceBook about some seemingly strange behaviour when obtaining string representations of Booleans using the Delphi RTL, which led me to revisit some familiar (and some not so familiar) old Delphi ground and take a look at the area involved in further detail.
[Estimated Reading Time: 2 minutes] In my previous post on Anonymous Classes I erroneously referred to them as “dynamic objects” (thanks to commentors for pulling me up on that). Dynamic objects are something else entirely (although what precisely they might mean can vary on different platforms and in different languages). I have now corrected that post on this point, and also on another point that Marc Hoffman called me out on (again, thanks for that). And so the time has now come to expose the true identity of these so called “Anonymous Classes”.
[Estimated Reading Time: 5 minutes] There is another use case for anonymous classes, even simpler than that of providing implementations of interfaces: Anonymous POCO’s.