There are a lot of command line tools that are very useful, but have one flaw: They directly modify a file in place and do not allow you to specify an output file instead. So, if you e.g. want to compare the modified file to the original, you have to make a copy first. Or, … Continue reading InplaceExeWrapper for those tools that do not allow specifying an output file
List of my open source projects
Since I keep forgetting which project is hosted where, here is a list of all(?) my open source projects as of 2018-10-06 with links to the pages where they are being hosted. Most of them are written in Delphi with some Lazarus (for Windows) sprinkled in. My old homepage still lists other stuff, some of … Continue reading List of my open source projects
Denkzettel Companion 0.0.5 released
I have just released version 0.0.5 of my Denkzettel Companion tool. It is available from OSDN. This version fixes a bug that prevented the program to start when the notes directory did not exist. (Since nobody reported that problem, probably nobody but me has ever used the tool.) Also, I have moved that project to … Continue reading Denkzettel Companion 0.0.5 released
On User Interface design
There have been two good blog posts on user interface design (not just in) Delphi by David Millington: How To Design a Great UI - Part 1 and Part 2. They add nicely to what I wrote in my rant Building less annoying user interfaces (part 1). (And they read much more professional than that … Continue reading On User Interface design
Calling Application.ProcessMessages in a Delphi program
Using Application.ProcessMessages is being frowned upon by many because often it means that your program design is flawed. These people usually suggest you should use multi-threading instead, which then opens another can of worms. First of all, let me make clear, that I am talking about Windows programs written in Delphi using the Visual Component … Continue reading Calling Application.ProcessMessages in a Delphi program
Delphi LongWord is not always a 32 bit unsigned integer
Did you know that LongWord in Delphi is not (any longer) always a 32 bit unsigned integer? I wasn't aware of this until I asked about what others use for that data type in the Delphi Developers Google+ community. I turned out that the majority of the participants use Cardinal, followed by Uint32. Only less … Continue reading Delphi LongWord is not always a 32 bit unsigned integer
NativeInt / NativeUInt type in various Delphi versions
Just in case you are maintaining Delphi code for several older versions of Delphi: Be aware that the declarations of NativeInt and NativeUInt are wrong in some of them. Delphi versionSizeOf(Native(U)Int) Win32SizeOf(Native(U)Int) Win64 1 to 6not availablenot available 7 to 20078 ← this is wrongnot available 2009 to XE4not available XE2 to XE848 10.x48 I … Continue reading NativeInt / NativeUInt type in various Delphi versions
If your floating point calculations differ after a trivial change
Today I had a curious bug: After changing the way GPS coordinates were read from a file (not calculated!) all of a sudden lots of unrelated floating point calculations had different results. I reverted the changes just to be sure and, yes, the results were back to the original values. I added the new code … Continue reading If your floating point calculations differ after a trivial change
Enable debug logging in gnugettext.pas
gnugettext.pas has got a conditional define called DXGETTEXTDEBUG. If it is defined, various debug messages are written to a MemoryStream. That won't help much, if you can't read that stream, so you need a way to write that stream to a file. Guess what, that's easily possible. Just call DefaultInstance.DebugLogToFile passing it a file name … Continue reading Enable debug logging in gnugettext.pas
GExperts Enhancements for docking in the Delphi IDE
The Delphi IDE has supported docking of various forms for a long time (I don't remember if it ever did not). Unfortunately if not docked, the floating forms always seem to be in the way, and if you dock them, they take up screen space that you might rather use for the editor window. Given … Continue reading GExperts Enhancements for docking in the Delphi IDE