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
Month: September 2018
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