- Major rewrite of Environment Variables Unit:
- New TPJEnvironmentVars static class, along with some subsidiary types, that provides methods to interrogate, enumerate and manipulate environment variables. This class supersedes the TPJEnvVar component and the various public routines: it replicates and extends their functionality while also fixing several bugs found in them.
- Both the TPJEnvVars component and the public routines are now deprecated and have been flagged as such.
- All public routines re-implemented as simple wrappers around calls to TPJEvironmentVas methods.
- TPJEnvVars component refactored and heavily revised to call into TPJEnvironmentVars. Some minor bugs fixed.
- On compilers that support it, anonymous methods can now be used as callbacks passed to enumerator methods.
- Unit names in uses clauses are now qualified with their namespace when compiled with Delphi XE2 and later.
- Registration code for the TPJEnvVars component has been removed into a new PJEnvVarsDsgn unit. This new unit is now required only if the deprecated component is to be registered with the Delphi IDE.
- Fixed problem with compiler directives that was causing compilation to fail on Delphi XE5.
- Added two public domain demo projects, with a VCL and FireMonkey 2 version of each, along with a read-me file that explains how to compile and use them.
- WinHelp help file removed from project.
- Source code license changed to Mozilla Public License v2.0.
- Updated documentation:
- The unit is now extensively documented in XMLDoc format.
- The project read-me file has been completely overhauled re the changes.
- The main documentation files are now licensed under the Mozilla Public License v2.0.
- The documentation internet short-cut's URL has been changed to reference new online documentation. The short-cut has also been renamed.
- The MPL text file's contents have been changed from the Mozilla Public License v1.1 to v2.0 and the file has been renamed accordingly.
- HTML file containing demo code has been removed.
- Added an enumerator for the environment variables component that supports the Delphi for..in construct
(issue #10). - Added new EnvBlockSize and two overloaded GetAllEnvVarNames routines.
- Renamed some conditional compilation symbols.
- Abandoned Delphi 3 support.
- Updated help file re changes. Added links to Wiki in place of detailed information.
- Added demo code for new enumerator and routines to demo read-me file.
- Updated read-me file.
- Fixed bug in ExpandEnvVars routine
(issue #11). - Made minor changes to read-me file.
- Fixed bug in GetAllEnvVars routine
(issue #3). - Fixed bug in ExpandEnvironmentStrings
(issue #4). - Updated help file and example code document for compatibility when Unicode Delphis. Example code stripped from help file.
- Updated documentation.
- Fixed bugs in component:
- Compilers later than Delphi 7 used deprecated Win32Error instead of EOSError.
- Passing nil as owner to component's constructor caused an access violation.
- Added assertion to enforce passing non-nil callback function to TPJEnvVars.EnumNames.
- Switched off UNSAFE_TYPE warnings in Delphi 7 and later.
- Expanded and corrected help file content and updated copyright date.
- Changed to Mozilla Public License.
- Fixed bug causing error when attempting to access an environment variable that does not exist.
- Updated component palette from "PJ Stuff" to "DelphiDabbler".
- Changed references to EWin32Error exception to EOSError in components compiled with Delphi 6 and later.
- Updated copyright date and owner in help file.
- Original version.