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
svnrdump for dumping and loading remote svn repositories
Since I keep forgetting what the tool is called and how to use it: svnrdump is a tool that can dump a remote svn repostory to a text file and also load that text file into a different remote svn repository. It comes with the TortoiseSVN installation (but is really part of the standard Subversion … Continue reading svnrdump for dumping and loading remote svn repositories
GNUGetText support for the GExperts Message Dialog expert
Based on an idea and partial implementation submitted by Sven Harazim from Landrix Software I have just added support for GNUGetText to the GExperts Message Dialog expert. It now looks like this: And generates Code like this: [delphi] MessageDlg(_('first line'+#13#10+'second line'), mtWarning, [mbOK], 0); [/delphi] Or, if you'd rather use the Windows API: which generates … Continue reading GNUGetText support for the GExperts Message Dialog expert
Building less annoying user interfaces (part 1)
I am not claiming to be an expert in building good user interfaces, in fact I have been known to use terrible color combinations, overload forms with too many controls and confusing the user. But on the other hand I have been using computers for all of my adult life and I have seen quite … Continue reading Building less annoying user interfaces (part 1)
Delphi disabled packages in the registry
Note to self: The Delphi IDE stores a list of disabled packages (that is packages where the user removed the check mark in front of the package under Components -> Packages) in the registry under HKCU\<basekey>disabled packages. <basekey> is the base key of the Delphi configuration, e.g. Software\Embarcadero\BDS\9.0 So the disabled packages for Delphi XE2 … Continue reading Delphi disabled packages in the registry