Dear Delphi partners,

Welcome to use new version of EAN library (3.0). If you find here any
mistakes, please send to us problem description.

Before installation please backup your old version.
Installation : copy all files to directory with old version and rebuild package EAN.
(For examples see demo project in directory DEMO)


To 4.0 version we would like offer these features :

- export to gif, png, tiff
- rotated barcode with angle <>0,90, 180,270,360
- more supported barcode types (Code 11, PDF417 ... )
- barcode caption with more lines
- barcode caption data aware - link from your datasources
- complex help file for EAN library
- support for Crystal reports, ACE reporter, Report writer

Known problems : GIF export - 1. needed licence from UNISYS if you
                 apply LZW compression in your applications.
                 2. difficult code/decode alghoritm



******************************************************************************
Last modifications :
******************************************************************************
06.01.199  - Added support for MSI/Plessey

05.01.1999 - Added support for UPC Shipping simple or with 6 digit supplement
             Added support for PostNet (ZIP, ZIP+4, DPBC);

04.01.1999 - Added support for barcode type JAN8, JAN13
           - Added function ExportToHTML(fn:TFileName) - export all barcode types
             in HTML format, good for preview all supported types of barcode.

30.12.1998 - extended support for error message erCharOutOfSet.
             Function LastPaintErrorText return now message, error position and
             bad char.
           - New function GetBarcodeInfo:TBarcodeInfo
           - Quick report component now derived from TQrPrintable, not from TQRShape.
             Destroyed properties Frame etc...
           - new Quick report component events (OnBeforePrint, OnAfterPrint)
           - added procedure PrintToCanvas(C:TCanvas; R:TRect);

29.12.1998 - added property AutoSize - if true and you change property Barcode or
             TypBarcode, then library test minimal width of component. If less than
             minimal width, than change width to this value.

28.12.1998 - error messages returned by function LastPaintErrorText is now
             resourcestring Err...

           - documented support for additional digits (EAN8, EAN13,
               Bookland EAN (ISBN, ISSN, ISMN) )
               after basic digits (8 or 13) follow one space and then two or five
               additional digits.

21.12.1998 - support for automatic calculations check digits
           (you don't need type check digits - EAN8, EAN13, ISBN, ISSN, ISMN )

20.12.1998 - support for barcode type ISBN (Bookland EAN), ISSN, ISMN, UPC-A,
             UPC-E0, UPC-E1 sipmle and with 2 or 5 digit supplement,
             UPC Shipping simple or with 6 digit supplement

           - added property Caption : TBarcodeCaption;
           - TLastPaintError - added
              erBarcodeLengthInvalid if barcode length is
                  invalid (EAN13 and length=10 ..., ITF14 and length is 6 ...)
              erFirstCharMustBeZero - ITF14-first char must be 0
              er11CharMustBeSpace   - ISBN & price - 11.char must be space
              er14CharMustBeSpace   - EAN13& added 2 or 5 digits - 14.char must be space
              er8CharMustBeSpace    - EAN8 & added 2 or 5 digits -  9.char must be space
              erCountCharMustBeEven - 2of5 Interleaved(ITF)


18.12.1998 - for TQrEan and it descendand added property CharWidthMM : double;
             if CharWidthMM<>0 then for printing on the printer is automatically
             changed width of barcode - Size.Width := Length(Barcode)*CharWidthMM;

10.12.1998 - support for export to external files (JPG)
           - new procedure SaveToFile(M:TFileName)

8.12.1998 - Added property editors, use right click on TEan component
          to invoke property editor, or at runtime double click on barcode
          - at runtime user can can invoke editor by double click on the barcode
          - programmers can disable this by setting new property DisableEditor=False

7.12.1998 - Added property Angle (in degrees), values in degrees
              (Only 0, 90, 180, 270 degrees)

          - procedure   AddTypesToList(L:TStrings; S:TBarcodeListStyle) - add to
            TString names all supported barcode types.

          - BarcodeInfos : array [TTypBarCode] of TBarcodeInfo
            TBarCodeInfo = record
                         Name        : String;  // name of barcode type
                         LongName    : String;
                         InitValue   : String;  // initial value - after change TypBarcode
                         Chars       : String;  // available chars
                         ParentCode  : TTypBarCode;
                         Year        : Word;
                         Country     : String[3];
                         EnabledAdd  : Boolean;
                         AutoCaption : Boolean;
                         OptCharWidthMM : Double; // optimal char width in mm
                                                  // see property CharWidthMM
            end;

1.12.1998 - Added properties :
         property OnClick;
         property OnDblClick;
         property OnDragDrop;
         property OnDragOver;
         property OnEndDrag;
         property OnMouseDown;
         property OnMouseMove;
         property OnMouseUp;
         property OnStartDrag;

15.11.1998 - bug fixed - corrected checksum calculation algoritm for bcCode128

10.11.1998 - added property LabelMask, visible char is indicated by '_',
             otherwise char isn't visible

******************************************************************************





