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

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

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