InplaceExeWrapper for those tools that do not allow specifying an output file

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

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

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