.Net Runtime Library for Delphi History

This page lists the functionality added in each version of .Net Runtime Library for Delphi. To view the full changelog including bug fixes, consult the .Net Runtime Library for Delphi revision history.



New features in .Net Runtime Library for Delphi 6.0.7

The current build is 6.0.7.0 from 20-April-2020

  • Support for .Net Standard 2.1.
  • Support for .Net Framework 4.6.1.
  • Fixed E2266 error: "Only one of a set of overloaded methods can be published".
  • Fixed error when converting UInt32 to a .Net Color in Delphi.
  • Allows conversion from .Net System.Object[] array to _GenericList type.
  • Improve product licensing and subscription process.

.Net DLL/WSDL Import Utility

  • Fixed error in generated methods with var/out parameters which is of type enum.
  • Converts nullable types to it equivalent in Delphi (Example: int? will be converted to NullableInt32).
  • Converts generic list of type decimal to a _GenericList instead of IList<_decimal> to prevent type cast error.
  • Generates all indexed properties for classes with indexers.

New features in .Net Runtime Library for Delphi 6.0.6

The current build is 6.0.6.2 from 08-July-2019

  • Added OnAssemblyLoad, OnAssemblyResolve, OnProcessExit, OnResourceResolve and OnTypeResolve events to the TClrAppDomain class.
    The OnAssemblyLoad event occurs when a .Net assembly is loaded.
    The OnAssemblyResolve event occurs when the resolution of a .Net assembly fails.
    The OnProcessExit event occurs occurs when the default application domain's parent process exits.
    The OnResourceResolve event occurs when the resolution of a resource fails because the resource is not a valid linked/embedded resource in the assembly.
    The OnTypeResolve event occurs when the resolution of a type fails.
  • Added UnsafeLoadFrom method to TClrAssembly class which will allow you to load any .net dll downloaded from the web, which is marked as blocked by the operating system.
  • Resolved Product License Validation and Registration issues.
  • Fixed "Access Violation Exception" when accessing a generated method or property which returns an array of object as interface.
  • Supports Delphi 10.3 Rio.
  • Fixed "Could not convert variant of type (Unknown) into type (OleStr) error" from a method that returns an array in a class generated by the Import Utility.
  • Fixed "access violation error" from a method that returns an array in a class generated by the Import Utility.
  • Fixed "Unable to wrap object of type 'System.Collections.Generic.List`1+Enumerator[System.String]' with type 'CNClrLibrary.Collections.IEnumerator' error" when converting .Net generic list to a Delphi generic list.
  • Fixed bug in host container when hosting .Net WPF controls in Delphi.
  • Win64 Apps using the Runtime Library no longer requires borlndmm.dll when deploying app.
  • Usability improvements.

.Net DLL/WSDL Import Utility

  • Fixed error in the generated property Get method in a class if the return type is a clrlibrary interface array.
  • Fixed line too long error in the generated unit.
  • All IDictionary<,> type will be converted to GenericIDictionary instead of GenericDictionary to prevent access violation when accessing a property or method whose return type inherits from IDictionary<,> and not Dictionary<,> type.
  • Added another load option called UnsafeLoadFrom option which can be used to load a local assembly that the operating system has flagged as having been loaded from the Web (for example, a temporary file that was downloaded from the Internet or intranet).
  • Support 64bit .Net DLL (Can load and import any 64bit .Net assemblies).
  • Fixed issues with generated array interface where the base interface is declared as interfaceIClrArray instead of interface(IClrArray).
  • Fixed issues with generated class where the class method parameters have the same name but with different CASES.
    (Note: Delphi method parameter names are not CASE SENSITIVE whereas C# method parameter names are.)
  • Include Guid in the generated interfaces to allow generic casting between the generated interfaces and its inherited classes.
  • Eventhandler is generated with sender argument as TClrBaseObject type instead of IClrBaseObject interface to prevent access violation.
  • Allows multiple selection and loading of WSDL source files. This is required to prevent parameter error in Wsdl if other dependent wsdl files cannot be loaded.
  • Stability and performance improvements.

New features in .Net Runtime Library for Delphi 6.0.5

  • Added Cast methods (AsType<>, Cast<>, IsType<> etc) in TClrBaseObject for easy casting between inherited .Net types in Delphi.
  • Fix error triggered when converting .Net object to it base generic type from Delphi.
  • No support for Delphi Codegear 2009.

.Net DLL/WSDL Import Utility

  • Removed Guid Strings from the generated interfaces (Not required).
  • Fixed error when converting some .Net generic types to Delphi.
  • Improved performance.
  • Optimised Delphi codes generated by the utility.
  • Fix WSDL load error by modifying the WSDL engine to load any WSDL documents and generate Delphi classes from the loaded wsdl types.
  • The utility generates an interface unit from the types of the imported assemblies.
    Notes:
    • These interfaces are inherited by the classes also generated by the utility.
    • The purpose of introducing the interface is to fix memory issues in the generated pas files by allowing Delphi to free objects automatically when the object is out of scope.
    • Filename: xxxxxxxx.Intf.pas (xxxxxxxx is the full name of the .Net Assembly imported).
  • Implement Delphi generic nullable class (Nullable<>) in CNClrLib.Generic.Helper which can be used to convert between .Net and Delphi Generic Nullable types.
  • Fixed .Net type properties and fields which returns generic list or dictionary and not visible on the import .Net Type list.
  • Some unit pas files generated by the utility have changed:
    • xxxxxxxxConsts.pas unit is changed to xxxxxxxxx.Consts.pas
    • xxxxxxxxEnums.pas unit is changed to xxxxxxxxx.Enums.pas

New features in .Net Runtime Library for Delphi 6.0.4

  • .Net DLL/WSDL Import Utility - Optimised Delphi codes generated by the utility.
  • .Net DLL/WSDL Import Utility - Fixed reflection type load exception when generating delphi codes from GAC Asemblies.
  • Fixed error triggered by invoking methods with generic parameters.
  • Register special key events in TClrContainer which allows hosted .Net Controls use tab, up arrow, down arrow, left arrow, right arrow etc keys in Delphi.

New features in .Net Runtime Library for Delphi 6.0.3

  • Optimised Delphi codes generated by the .Net DLL/WSDL Import Utility.
  • Introduced a new method called AsType in TClrBaseObject class for casting .Net derived class to base class in Delphi.
  • Introduced a new unit called CNClrLib.Generic.Helper which contains helper class methods for converting .Net generic lists or dictionaries to Delphi generic List (TObjectList<>) or dictionary (TObjectDictionary<,>) and vice-versa.

New features in .Net Runtime Library for Delphi 6.0.2

  • Fixed "Object not set to an instance" error if a nil parameter is passed to TClrBaseObject constructor.
  • Modified TClrBaseObject class to prevent the following error "This type has a ComVisible(false) parent in its hierarchy, therefore QueryInterface calls for IDispatch or class interfaces are disallowed."
  • .Net Assembly/WSDL Import Tools: Delphi Code generator engine modified to produce clean and optimised delphi codes.

New features in .Net Runtime Library for Delphi 6.0.1

  • Introduced a new class for handling event source notification in the host unit.
  • Introduced a new wrapper class for static fields, methods and properties of System.Type in the host unit.
  • Changed any reference of TClrActivator in the host unit to TDispatchActivator Class.
  • Added extra methods to TDispatchActivator Class.
  • .Net Assembly/WSDL Import Tools: Fixed Object reference not set to an instance of an object error when generating Delphi Codes.
  • .Net Assembly/WSDL Import Tools: Fixed E2003 Undeclared identifier: 'IList' error in the generated Delphi Units. IList is changed to _IList.

New features in .Net Runtime Library for Delphi 6.0.0

  • Fixed bug with creating an instance of the TClrObjectArray or TClrArray Class
  • Fixed bugs in .Net Assembly/WSDL Import Tools to generate Delphi codes from .Net assemblies/WSDL without compiler errors.
  • Changed return type of the methods for loading .net assemblies in TClrAssembly and TClrAppDomain Classes from TClrAssembly to _Assembly interface in order to prevent possible memory leaks if the user forgets to free the loaded .net assemblies.
  • Fixed "Constructor on type 'CNClrLibrary.Security.Cryptography.Cryptostream' not found" error
  • Implemented mscorlib types as part of the runtime library
  • Added new classes and improve the existing classes in the host class library
  • Support .Net Framework 4.5.2 or Higher
  • Support Delphi 2009 or Higher
  • Added .Net Assembly/WSDL Import Tools
  • Usability improvements
  • Stability and performance improvements

New features in .Net Runtime Library for Delphi 5.0

  • Major changes to the Runtime Library
  • Support 64bit Delphi application

New features in .Net Runtime Library for Delphi 4.0

  • Support .Net Framework 4.5 or Higher
  • Fixed bugs in CryptoStream type interface to avoid the error ""EOleException: Constructor on type 'CNCorLib.Sys.Security.Cryptography.CryptoStream' not found"
  • Fixed bugs in Runtime Host class to prevent "System.NullReferenceException"
  • Fixed bugs in Mscorlib type interfaces
  • Added Delphi Framework Class Library
  • Support .Net Framework 4.0 or Higher
  • Support Delphi 7 and Higher

New features in .Net Runtime Library for Delphi 2.0

  • Fixed bugs with I/O operations
  • Usability improvements
  • Stability and performance improvements

New features in .Net Runtime Library for Delphi 1.0

  • First release of .Net Runtime Library
  • Delphi 7 is supported
  • Support .Net Framework 3.0