Software development tools and techniques explored--mostly Delphi
Introducing WebStencils
Category
Data Connection Backups
Category
GExperts - A Most Awesome Delphi Companion
Category
Take Control of Your Delphi Project
Category
You can (and should) have complete control over all aspects of the version information, application icon, operating system compatibility, requested user access, Windows theming dependencies, and more in your Delphi projects!
Delphi as a Build Machine
Category
Flexibility With Runtime Packages
Category
ChatGPT can write Delphi code
Category
Moving to Delphi 12
Category
Delphi 12 Athens has been out for nearly a month now and there are many fixes and improvements over its predecessor. It's still not perfect but I'm moving all projects I had in Delphi 11 up to the latest version.
Delphi 12: All the Icons at Once!
Category
Coming in Delphi 12 is very cool feature that will save cross-platform developers a lot of time. But first, a reminder: This blog post is based on a pre-release version of the RAD Studio software and it has been written with specific permission by Embarcadero. No feature is committed until the product GA release.
Delphi 12: More Syntax Highlighting
Category
As I've been going through the Delphi 12 beta, I'm delighted to see many fixes and enhancements in the IDE to help the programming experience feel more fluid and intuitive. As with all beta versions being discussed, this blog post is based on a pre-release version of the RAD Studio software and it has been written with specific permission by Embarcadero. No feature is committed until the product GA release.
Delphi 12 is Coming!
Category
Code Better in Delphi - by Alister Christie
Category
The author of Code Faster in Delphi has just released his second book, Code Better in Delphi--and it is just as packed with useful coding techniques that will improve the way you write software as the first. The book is an easy read with short, clear examples that illustrate the concepts presented.
Creating a Delphi Welcome Page Plug-in
Category
There have been several iterations of the Delphi IDE's Welcome Page, or the first page that you see by default when you start Delphi without a project. This space has been used for keeping a list of favorite projects for convenient loading, marketing of related products by Embarcadero, and quick links to tutorials and resources. Delphi 11 introduced, in my opinion, the best interface yet as it's completely customizable by the user and provides an API for writing your own plug-ins to provide additional functionality.
Go!
Category
For Historical Purposes
Category
Early in my career, I was studying the code of an application written for the Apple II in preparation for developing something similar on the PC and would often ask questions of the original programmer. Most of the time, I'd get valuable information about the purpose of a routine or why something was done a particular way. But every once in a while, when pressed for an explanation, the programmer would think for a minute, then simply utter, "For Historical Purposes" and walk away chuckling.
Thankful for Delphi
Category
This time of year in the United States is marked by a major holiday, Thanksgiving, the last Thursday of November. It is during this time that ad campaigns, religious organizations, and families everywhere tend to step up their recognition of everything they're thankful for. As a software developer, I'd like to hook into this theme and highlight features of programming tools I use that make my life better--most notably, Delphi--and create my own "thankfulness" list.
Multiple Installs of Firebird
Category
Using the Vault API
Category
Nearly two years ago, Idera acquired apilayer, a collection of various cloud-based APIs. Idera being Embarcadero's parent company (and Embarcadero being the publisher of my favorite development tool, Delphi), I was interested to see what this was all about and looked at the handful of APIs available. One caught my eye and I made a note to come back and check it out more when the time was right.
Delphi Debates: With, Goto, & Label--and Exit
Category
The Delphi Debate series continues with another topic that has been discussed back and forth for ages. This time, instead of a procedure or function in the RTL, we are talking about three reserved words: the with, goto, and label statements which pre-date Delphi--they are part of the core Pascal language itself!
Delphi Debates: Assigned
Category
As a Delphi MVP, I was surveyed on my stance of the use of FreeAndNil
. In that questionnaire was included a question about the use of Assigned()
. Really? Is that debated as well? I couldn't find anything on the internet debating this except for an old discussion on StackOverflow. I use this function frequently and as I looked more deeply at what it does, I'm even more confident of its use.
Delphi Debates: FreeAndNil
Category
When freeing an object in Delphi, simply calling its Free
method calls the object's destructor
and releases the memory allocated to the instance of the object. But it doesn't change the address of the referencing variable which, therefore, still points to the place in memory where the object existed. The released memory can be quickly reused by other objects or resources and if you try to access the object again without re-creating it, you could get an Access Violation or some other error or worse yet, unpredictable behavior.
Delphi's Find in Files Trick
Category
You've probably used Delphi's Find in Files feature to search for an identifier or library function through multiple folders of source code. If you have backups of your source or multiple projects with copied or similar sets of routines and check the "Include subdirectories" checkbox, the search results could contain a lot of duplicates taking extra time to wade through them all. Wouldn't it be nice if there was a way to fine-tune the folders being searched?
There is!
Switching From UniDAC to FireDAC
Category
From SVG to Multiple PNGs
Category
In my last blog entry, I explained how I converted my original company logo in JPG format to SVG. That's sort-of like reverse-engineering to get the source code. Now that I have my logo in SVG format, I can more easily manipulate it and create custom derivations for specific purposes.
From JPG to SVG
Category
I've been hearing a lot about SVG, or Scalable Vector Graphics, lately and how much better they are than bitmap formats such as JPG or PNG for icons or simple images because they scale up or down to fit the plethora of devices we use today.