RCCL Version History
Home Up Feedback Search

Products
Order
Downloads
Support
Articles & Tips
Recommended Links
About

 
 

 
 

This page contains the version history for the RiverSoftAVG Common Classes Library.  This library is used by all RiverSoftAVG products.

-------------------------------------------------------------------

Sept 7, 2009    Version 3.8
        - Added support for Delphi 2010
        - Changed help file(s) from WinHelp to HTML Help.  Note that there
          is a known issue with the display to Delphi links (available with
          WinHelp but not HTML Help)


-------------------------------------------------------------------

Jan 31, 2009    Version 3.7
        - Added support for Delphi 2009 (Final)
        - Turned off range checks around ColorToRGB function to avoid range
          check errors
        - Fixed DrawShape for beveled rectangles
        - Added ss3DRectangle, ss3DEllipse,
          ss3DDiamond, ss3DLeftTriangle, ss3DRightTriangle,
          ss3DUpTriangle, ss3DDownTriangle, ss3DRoundRect,
          ss3DSquare, ss3DCircle, ss3DRoundSquare to TRSShapeStyle
        - Added Frame3DExt function for creating the 3D frame for an rectangle
        - Added Frame3DEllipse function for creating the 3D frame for an ellipse
        - Added TRSShapeStyles type
        - Added ShapeStyles3D constant
        - Added InCenterPoint function to get InCenter Point of a triangle
        - Changed DrawShape functions to return the non-beveled part of the
          drawing rectangle
        - Added CenterRect function, which creates a rectangle centered around a point
        - Fixed IntersectRect function to detect intersection when intersection
          is single point that equals


-------------------------------------------------------------------

Dec 21, 2008    Version 3.7B2
	- Changed Install Directory to C:\Comps\RiverSoftAVG to reduce chances
	  of too long path names
        - Changed behavior of TGTextStream.SetEncoding method to set PreambleStreamed
          flag to True if new encoding <> nil (Assumption is that if you already
          know the encoding, you read the preamble or it doesn't exist (e.g., coming
          from a string control))
        - Added optional Encoding parameter to TGTextStream constructors
        - Fixed behavior where TGTextStream detects if it is working with a
          TStringStream and then uses its encoding
        - Added optional Encoding parameter to WriteStringToStream function
        - Added WritePreambleToStream function
        - Added RSUpperCase and RSLowerCase inline functions to handle
          correct calls for .NET or Win32
        - Changed AnsiUpper/LowerCase to use inline RSUpper/LowerCase which
          uses the correct call to avoid warnings in .NET, but still
          uses AnsiXXX for Win32
        - Added overloaded constructor to TRSStringStream for D2009
        - Changed TRSStringStream to use TEncoding.Unicode for default
          encoding


-------------------------------------------------------------------

Nov 23, 2008    Version 3.7B1
        - Changed AnsiPos calls to Pos calls
        - Added CharInSet, IsLetter, IsLetterOrDigit, IsUpper, IsLower and IsDigit
          functions for pre-Delphi 2009 compilers
        - Added IsNumberChar function
        - Added IsNumberSymbol function
        - Fixed TGTextStream.GetChar method to correctly read 1 character without
          causing a PutBack overflow exception
        - Fixed access violation in TGTextStream.GetChar for D2009 by adding
          check for reading 0 bytes
        - Added set expressions to use CharInSet
        - Changed Upper/LowerCase to AnsiUpper/LowerCase, because the Ansi version
          handles Unicode (go figure)


-------------------------------------------------------------------

Nov 16, 2008    Version 3.7B0
        - Added support for Delphi 2009
        - Modified classes to avoid warnings about collisions with
          new methods added to TObject (D2009/.NET)
        - Added tkStringType to distinguish between pre-Delphi2009 default
          string type (tkString) and post-Delphi2009 default string type
          (tkUString)
        - Added TRegExChar and TRegExString, which are AnsiChar and AnsiString
          for UNICODE (.NET and D2009) and Char and String for Win32
        - Changed all occurrences of AnsiChar and AnsiString to use
          TRegExChar and TRegExString respectively
        - Fixed small warning generated in D2009 in RotateFont function
        - Fixed code for VType's of Int64, WideString, and UnicodeString in TGValue
        - Added TGCustomValue.AsWideString property and methods
        - Fixed HelperFunctions.WriteStringToStream to handle unicode strings
        - Modified stream classes to work with Unicode and D2009
        - Modified stream classes to avoid warnings about collisions with
          new methods added to TObject (D2009/.NET)
        - Updated TGTextStream.WriteArgs to handle Int64, WideStrings and
          Unicode strings
        - Fixed bug in TGBufferStream.FillBuffer which would cause subsequent PutBack
          call to fail if at end of stream
        - Added SPreamblePastEof resource string
        - Changed return type of TGBufferStream.FillBuffer from boolean to
          integer
        - Added TGBufferStream.PrepareBuffer method
        - Added overloaded TGBufferStream.PutBack(Byte) and PutBack(Char/WideChar)
          methods
        - Added ability for TGTextStream to read/write non-default encoded
          files in Delphi 2009 or later
        - Added protected TGTextStream.PreambleSize method and PreambleStreamed
          property
        - Added TGTextStream.Encoding property for Delphi 2009
        - Changed return type TGTextStream.GetChar method to Char from AnsiChar
        - Added overloaded TGTextStream.GetChar(Char) method
        - Added TGTextStream.SeekExcludePreamble method


-------------------------------------------------------------------

Feb 09, 2008    Version 3.6.2
	- Added PreserveSignBit property and code to encode/decode
          numeric values with or without the sign bit
	- Fixed GetAsFloat/Double and SetAsFloatDouble to encode floating
          point values properly (or attempt to) even when the len is
          less than 32 bits


-------------------------------------------------------------------

Oct 06, 2007    Version 3.6.1
	- Added RAD Studio 2007 .NET Support
	- Added RAD Studio 2007 support to installer
	- Added TSortedCollection to Structures.pas


-------------------------------------------------------------------

Jun 23, 2007    Version 3.6
	- Added Delphi 2007 support to installer
        - Added support for the for-in language construct in TGGraphNode (Edges)
        - Added support for the for-in language construct in TGLabelGraph (Nodes)
        - Added support for the for-in language construct in TGLabelGraph (Nodes)
        - Added support for the for-in language construct in TGCustomLinkedList
        - Overrode TGStringQueue.Assign method to correctly copy TStrings
          into the queue
        - Added support for the for-in language construct in TGCustomHashTable
          class (Keys) by adding GetEnumerator public method and adding
          GetCurrent and MoveNext methods to TGHashTableEnumerator
        - Added support for the for-in language construct in TGStringHashTable
          class (Keys) by adding GetEnumerator public method and adding
          GetCurrent and MoveNext methods to TGHashTableEnumerator
        - Added support for the for-in language construct in TIHashTable
        - Added support for the for-in language construct in TIStringHashTable
        - Added support for the for-in language construct in TIFixedList
        - Added support for the for-in language construct in TGInterfaceList
        - Added support for the for-in language construct in TIList
        - Added DrawTextLabel function in RSGraphics.pas
        - Added GetMultilineTextHeight function in RSGraphics.pas
        - Added WrapCanvasText functions in RSGraphics.pas
        - Improved installer


-------------------------------------------------------------------

Feb 8, 2006    Version 3.5 
        - Added IsMatchStr and IsMatchText function to HelperFunctions.pas
        - Added FindMatchStr and FindMatchText function to HelperFunctions.pas


-------------------------------------------------------------------

Dec 22, 2005    Version 3.5b9
        - Fixed hang bug in TGTextStream.GetChar introduced in Delphi 2006 by
          initializing result in the GetChar instead of the Read. (Thanks P.G.)
        - Added RSAnsiContainsStr, RSAnsiContainsText, ExtractWord,
          TitleCase, and overloaded FindTreeNode functions to HelperFunctions.pas
        - Added AnsiStartsStr, AnsiEndsStr, AnsiStartsText, and
          AnsiEndsText functions to HelperFunctions.pas for Delphi 5 
        - Added TRSPoints to RSGraphics
        - Added TConnectionPoint to RSGraphics
        - Added GetPointOnRect and GetRSPointOnRSRect functions to RSGraphics.pas


-------------------------------------------------------------------

Dec 11, 2005    Version 3.5b8
	- Official release for Delphi 2006


-------------------------------------------------------------------

Nov 22, 2005    Version 3.5b7
        - Fixed Common.hlp file
	- Fixed "See Also" topics which had disappeared
	- Cleaned up Table of Contents


-------------------------------------------------------------------

Nov 8, 2005    Version 3.5b6
	- Installers have had a massive overhaul
		- Compiled files are now installed to <INSTALLDIR>\Bin\W32\Dxx or
		  <INSTALLDIR>\Bin\NET\Dxx and path is updated
		  WARNING: BE SURE TO UNINSTALL PREVIOUS FILES WHICH MAY BE IN
		  $(DELPHI)\Projects\Bpl DIRECTORY
		- Attempts to detect if evaluation or full versions are being
		  installed and warns about incompatibilities
		- Smarter updates of registry
		- Added missing registry updates (Package Search Path, Namespace Search Path, etc)
	- Added more text to help file


-------------------------------------------------------------------

Oct 18, 2005    Version 3.5b5
        - Fixed distribution to include some missing files


-------------------------------------------------------------------

Oct 5, 2005    Version 3.5b4
        - Fixed bug in TGCustomLinkedList.Insert where LastAccessedIndex
          and LastAccessedNode were not always getting updated correctly
        - Added NumberOfOnes and NumberOfZeros methods to TRSEncodedBits
        - Added Arrow Width to DrawArrow routine in RSGraphics unit


-------------------------------------------------------------------

Sept 26, 2005    Version 3.5b3
        - Changed Win32 VCL package numbers to 3.5


-------------------------------------------------------------------

Aug 31, 2005    Version 3.5b2
        - Modified properties and added accessor methods of interfaces to
          use underscore in order to get rid of annoying .NET hint


-------------------------------------------------------------------

June 27, 2005    Version 3.5b1
        - Changed RSGraphics.TRSPoint and TRSRect to be packed records
        - Changed RSGraphics.TRSPoint and TRSRect to be safe types in .NET
        - Fixed index caching bugs with hash table, would cause access violations
          in certain situations


-------------------------------------------------------------------

June 2005    Version 3.5b0
        - Finished modificatons to work with .NET
        - Created RSConstants.pas file, which includes basic types and constants.
          Some of these constants and types were moved from IEConsts.pas and
          FuzzyConsts.pas
          Among the most important new types:
                - TRSPointerType, which equals Pointer in Win32 and TObject in .NET
                - TRSStringPointerType, which equals PChar in Win32 and String in .NET
        - Modified most files to:
                - Include RSDefines.inc
                - Include RSConstants.pas
                - Changed all methods and properties that use IUnknown interface to use
                  IInterface interface.  Added IInterface interface for Delphi 5 support
                - Changed all QueryInterface calls to use Supports functions.
                - Removed reference counting code for .NET (not needed)
                - Changed ToString properties to AsString and GetToString methods to
                  ToString to sync better with .NET (in which all objects have ToString
                  method)
                - Changed Tag properties to be of TRSTag type (Win32=Integer;.NET=Variant)
                - Introduced TxxxPersistent class to get around a delphi
                  compiler bug with class helpers (QC report #11019)
                - Added inherited Creates calls to constructors for
                  compatibility with .NET
                - Deleted AfterConstruction and BeforeDestruction methods (for .NET)
                - Extracted icons from DCR files to create assembly bitmap files
                  for design-time icons in .NET
                - Conditional compiled IUnknown methods (_addref, _release...)
                  because they are not needed with .NET
        RiverSoftAVG Common Classes Library (GCollections package in Delphi 5, 6, and 7;
                               RSCommon package in Delphi 2005 (Win32) and
                               RiverSoftAVG.Common assembly in VCL.NET)
                - Created TRSEncodedBits class (in RSEncodedBits.pas), a TBits descendant
                  with methods to encode/decode simple types into the TBits
                - Modified InterfaceCollections.pas
                        - Modified TGInterfaceList to descend from TPersistent
                        - Modified descendants of TGInterfaceList to correctly override
                          methods
                        - Modified list classes to use a dynamic arrays instead of a
                          pointer to such an array (as used for Win32).  The pointer
                          implementation was left for Win32 since it is faster than the
                          dynamic array implementation
                        - Changed DEMO out of memory errors to use standard Exception,
                          instead of EOutOfMemory exception, which (contrary to help file)
                          seems to have disappeared from the SysUtils unit
                - Modified HelperFunctions.pas
                        - Added WriteStringToStream function
                        - Added SameValue and Supports functions for Delphi 5
                        - Added CreateObjectClass and ClonePersistentClass methods
                - Modified GStreams.pas
                        - Added Close method to TGBufferStream (useful for .NET)
                        - TGSpecialFiler is not available for .NET (because can't crack
                          protected methods of TReader/TWriter)
                - Modified GRegularExpression.pas
                        - Modified String references to AnsiString references (for .NET
                          compatibility).  The Regular Expression object must use
                          AnsiString (one byte characters) because it uses set operations
                          which do not work with wide chars.
                - Modified GParser.pas
                         - Changed StrScan calls to Pos, even though StrScan is faster it is not
                         .NET compatible
                - Modified GLists.pas
                         - Added TQOrderedList class, which is base class for the TQxxx
                           stacks and queues, and TQOrderedListClass type.  These classes
                           are useful because they have a virtual constructor, unlike
                           Borland's classes
                - Modified GHashtable.pas
                         - Modified TGCustomHashTable to use a dynamic array of hash
                           table entries (THashtableEntries) instead of a pointer to
                           such an array (as used for Win32).  The pointer implementation
                           was left for Win32 since it is faster than the dynamic array
                           implementation
                - Modified GGraph.pas
                         - Changed TGCustomGraph.AddNode method visibility from protected
                           to public (.NET does not like changing visiblity with methods)
                - Modified DataStructures.pas
                         - Added TFloatHeapElement, TFloatHeap, and TFloatPriorityQueue classes
                         - Changed TPriorityList.OrderedListClass to use GLists.TQOrderedList
                           instead of Borland's classes because we can't get to the items of the
                           list quickly
                - Modified Structures.pas
                         - Added overloaded AddObject method to TGStringList
                - Added RSGraphics.pas, moved from internal development package to common
                  classes library.  Modified RSGraphics.pas as well:
                         - Added RSCenterPoint functions
                         - Added DrawPieSlice procedure
                         - Added DrawArrow procedure and TArrowOption types
                         - Changed Gradient functions to accept an open array of TColor,
                           instead of TColors
                         - Moved TObjectSize from Game.pas to RSGraphics.pas
                         - Created hierarchy of TRSCustomRect, TRSObjectRect, and TObjectSize
                         - Added TRSRect, TRSPoint and functions to manipulate them
                         - Added overloaded DrawShape procedures and TRSShapeStyle type
                         - Fixed LineGradient to handle "reversed" TRects (left > Right, etc)
                         - Fixed RotateFont to change font name if font is not a true type
                           (and wouldn't thus rotate)
                         - Added GetRotatedTextExtent function (Delphi's Canvas.TextExtent
                           does not work for rotated fonts)


-------------------------------------------------------------------

March 2005    Version 3.4
        - Added RSConsts.pas and DataStructures.pas to package


-------------------------------------------------------------------

January 2005    Version 3.3
        - Modified to work with Delphi 5, 6, 7, and 2005 (Win32)
                - Added RSDefines.inc to simplify updates for new
                  versions of Delphi
                - Modified source files to use RSDefines.inc
	- Renamed GCollections package to RSCommon package for Delphi 2005 ONLY
	- Modified source files to work with .NET (Incomplete)


-------------------------------------------------------------------

May 2004    Version 3.2
      - Added RSGraphics and RSVector units to Common library


-------------------------------------------------------------------

March 2004    Version 3.1 (First Separated History for Common Library)
      - Added code to TGCollection and TGCollectionItem to attempt to
        mimic notifies like Delphi 6 and 7 collections
      - Added IVector interface
      - Changed ILocation interface to descend from ICloneable
      - Installation script is much smarter about managing the different Delphi versions
Send mail to webmasterNO@SPAMRiverSoftAVG.com with questions or comments about this web site.
Copyright © 2002-2009 RiverSoftAVG
Last modified: December 31, 2009