In this video we take a look at using structural highlighting, and how it can help make your code easier to understand.  This is one of the many cool features of the free Delphi IDE plugin CnWizards from  I hope to cover some of it's other features in future videos.  This video is under 4 minutes in length and you can watch it here.

In this YouTube video we look at how to change the mouse cursor in FireMonkey in a way that should work on all platforms (although I've not tested it). We further look at how we can do this with a single line of code, using a cleaver trick by returning an interface from a function. The video is about 12 minutes long.

In this video we take a look at a couple of features of the Delphi exit statement.  These are the fact that you can specify a parameter to the exit statement, and that finally blocks are always obeyed even when you call exit.  It's two minutes long.

During this session you'll either be thinking "I do that" (and hopefully you'll stop) or "I remember doing that" (while cringing at the memory). There are certain coding patterns that all Delphi programmers seem to use at some stage - some of them sub-optimal, some weird, and some just plain wrong. Collectively I've called them Anti-Patterns, and in this session you'll get to see some of my favorites (or, anti-favorites).  Watch on YouTube, the video is about half an hour long.

We all want to do the right thing with memory management and make sure we tidy up after ourselves. However as our code gets buried in successive layers of object allocation, try, finally, free "nests" it all becomes a bit onerous -- and, well, resembling a pterodactyl nest. In this session, we look at a technique to flatten out your code so that it will look less attractive as habitation for a friendly pterosaur, and as a side benefit, improve readability. Along the way we use interfaces, generics and anonymous methods to build our over-engineered object de-allocation artifice.  Watch the video on YouTube. This video is about half an hour long.

In this YouTube video I take a look at the fact that depending on what version of Delphi and if you are using FireMonkey or the VCL, the definitions of Margins and Padding on controls are different.  Up until Delphi XE4, the usage of Margins and Padding in FireMonkey was reversed to that of the VCL, but now this situation has changed and they are the same, making margins and padding different in FireMonkey between XE3 and XE4 -  confused, watch the video.

In this 4 minute video we look at the initialization and finalization sections of Delphi units, and how you can use begin instead of initialization - which may cause you some grief in some instances.  Watch the video.  In the video I also mention CnPack, which has some highly useful utilities.

In this video I write my first iOS application, the classic Fish Facts application - soon to be available in the App Store (or not).  We do this with the recently released Delphi XE4.  Watch it on YouTube.

In this video we take a quick look at form inheritance, and why renaming component events can cause you problems.  The video is 7 minutes long.

"If you assign a stringlist to a combobox items property using ':=', you still have to free the stringlist." This tweet by Nick Hodges is probably very obvious to any seasoned Delphi developer, however I think it's far from obvious to someone new to Delphi. In this video we take a look why we need to "free the stringlist". Watch on Youtube, it's less than 5 minutes long.