Today I downloaded and installed the latest and greatest Delphi 10.4. The first thing to do, was of course compile GExperts for it. Thanks to Achim Kalwa I already had a working project and he also made all other changes necessary to make it compile. So basically I loaded the project and pressed Compile. A … Continue reading GExperts 1.3.16 for Delphi 10.4
Category: Delphi
When computers try to be clever
Don't you just hate it when computers try to be clever but get it wrong? OK, it's not really the computer itself but the programmer who tried to be clever. The problem usually is that he overlooked a corner case that you then hit where his sophisticated strategy fails and leaves you with something - … Continue reading When computers try to be clever
More features for the IFDEF expert in GExperts
The IFDEF editor expert was added to GExperts in 2016 and improved again in the same year, to support symbols defined in include files. Unfortunately sometimes an include file itself sometimes includes other files (e.g. jclNN.inc in the JEDI Code Library includes jedi.inc) which will usually add additional symbols which are then available for conditional … Continue reading More features for the IFDEF expert in GExperts
Skipping the UTF-8 BOM with TMemIniFile in Delphi 2007
Recently I came across a problem with INI files: Some editors (including recent versions of Windows Notepad) add a byte order mark (BOM) to the files they save. In particular the BOM for UTF-8 kept appearing in INI files which then were read incorrectly by the Delphi 2007 implementation of TMemIniFile (I guess the same … Continue reading Skipping the UTF-8 BOM with TMemIniFile in Delphi 2007
Delphi’s TStream.Read returns the number of bytes read
Note to self: TStream.Read in the Delphi RTL returns the number of bytes read. It does not check whether the intended number of bytes could actually be read. So if you do not check it yourself, call TStream.ReadBuffer instead. So, it's either: [delphi] var st: TFileStream; Buffer: array[0..7] of Byte; BytesRead: Integer; begin st := … Continue reading Delphi’s TStream.Read returns the number of bytes read
dzBdsLauncher 1.0.3 released
The latest version of dzBdsLauncher can now also handle some .dproj files with invalid ProjectVersion entries (e.g. those generated by project JEDI which apparently uses ProjectVersion 17.3 for all Delphi versions >XE8). It does this by evaluating the DllSuffix entry, if one exists. This can also help solving conflicts if the ProjectVersion is not unique. … Continue reading dzBdsLauncher 1.0.3 released
dzPackageInst 1.0.3 for Delphi released
The new version now has colored output thanks to the late Rudy Velthuis' excellent console units. Thanks again Rudy may you rest in peace. Download is available from the project page on SourceForge.
dzPackageInst 1.0.2 for Delphi 6 to 10.3 released
Today I released version 1.0.2 of dzPackageInst. Its a command line tool that allows installing and uninstalling design time packages into the Delphi 6 to 1.3 IDEs. Source code and download are available from the project page on SourceForge. It's also part of my buildtools which I use for nearly all my projects.
TStringList vs. THashedStringList vs. TDictionary
Prompted by the topic Dictionaries, Hashing and Performance in the international Delphi Praxis forum I did some timing to compare the performance of data structures in the Delphi runtime library that can be used to store data indexed by strings: a sorted, case sensitive TStringList (available since Delphi 6) a sorted, case sensitive THashedStringList (available … Continue reading TStringList vs. THashedStringList vs. TDictionary
Delphi is 25 years old
Everybody seems to be blogging about Delphi having been around for 25 years, so I won't stay back and tell some of my story. When I finished university and started a job, Delphi was just about being "born" and I was working with Turbo Pascal and later Visual Basic. VB was great in some aspects … Continue reading Delphi is 25 years old