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
Category: Delphi
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
If your lines seem too thick in a TeeChart
... you might not be used to anti-aliasing. Recent (#1) versions of TeeChart switched to GDI+ as their default drawing engine which also switched on anti-aliasing by default. The difference looks like this: (Apparently this wasn't obvious: These screen shots have been magnified to show the cause of the "thick line" effect.) It's a matter … Continue reading If your lines seem too thick in a TeeChart
Using escape characters in GExperts Grep replace
If you enable regular expressions in the GExperts Grep search form, you can search for escape sequences like \t which is expanded to a tab character or \x20 which is expanded to char($20), the space character. Up to now it was not possible to use \t (and similar escape sequences) in the Grep replace dialog. … Continue reading Using escape characters in GExperts Grep replace