{ PlusMemo version 5.0 }

{ version history:
5.0a 07/10/99   Fixed design time errors under Delphi 1 and Delphi 2 if background bitmap is not
                     assigned, after Delphi streamed a form file out

5.0  22/09/99	Fixed access violation at destroy time if a highlighter was shared
                     between different instances of TPlusMemo on separate forms
                The component now receives the focus when right clicking in it
                Assigning to Overwrite no longer make the caret appears if DisplayOnly
                     is True
                Moved custom property editors in pmemoreg unit so that PlusKeys can still
                     be used in an application in Delphi 5 (it was using DsgnIntf unit)
                Moving the caret programmatically will make it properly forget its last
                     horizontal position when moving vertically with arrow keys later on
                Changed file name DragCur.res to Plusmemo.res



4.2a  16/08/99    Fixed display problems with the background bitmap
                  Fixed a highlighting bug with start-stop keys having woMatchCase set

4.2   07/08/99    Added BackgroundBmp property (background picture)
                  Fixed a design time bug manifesting when exiting Delphi under specific conditions
                  Added Ctrl-Insert and Shift-Insert handling (copy-paste)
                  Fixed text scrolling when clicking in it with DisplayOnly set to True
                  Avoided triggering OnContext event when clicking after the text, if the text end
                          is under a dynamic highlighting

4.1h  19/07/99    Fixed a highlighting bug

4.1g   2/07/99    Fixed problem with changing WordWrap when the control does not have a window handle
                  Fixed mouse text selection problem under Delphi 1 when total text is larger than 32K pixels
                  Improved word wrapping to avoid unnecessary empty line at the end of a paragraph
                  Support of PaintTo method (painting to an arbitrary device context)
                  Fixed a highlighting bug, present when some start key was a subset of another one
                  Added property MouseWheelFactor

4.1f  30/05/99    Added property LineBreak
                  Refined the background formatting mechanism
                  Fixed a bug with SetDynStyle if the end range is up to the end of the text
                  Fixed a bug with Lines.Clear when done inside of Lines.BeginUpdate/EndUpdate pair
                  Improved coexistence of SetDynStyle parts and start-stop key parts
                  Avoid display underlined or colored spaces at the end of a line which is wrapped
                  Added mouse wheel support
                  Corrected a scrollbar refresh problems with a call to LoadFromStream surrounded by
                          Lines.BeginUpdate/EndUpdate
                  Removed a memory leak in FindText; also speed improvement in it


4.1e  20/05/99    Corrected access violation occuring with case sensitive start-stop keys

4.1d  22/04/99    Fixed a bug when adding large paragraphs of text with umBackground and WordWrap
                  Property SelStart is now range checked
                  Setting SelStart resets SelLength to zero
                  Improved the word wrapping engine to handle a few special cases

4.1c  12/04/99    Fixed a problem with ReApplyKeywords
                  Fixed a bug with LoadFromNativeStream

4.1b  29/03/99    Fixed OnContext being called with invalid StartOffset-StopOffset pair if
                        a highlighter was in use
                  Fixed the behavior with TURLHighlighter where urls were not launched if
                        no accessory component is attached
                  Fixed incorrect caret position under certain circumstances
                  Enhanced slightly the keywords highlighting possibilities

4.1a 24/03/99     Fixed a display bug with pmoWindowsSelColors
                  Fixed a bug with LoadFromNativeStream introduced in v4.1
                  Fixed a positioning problem with StaticFormat=False and tab characters

4.1  13/03/99     Improved memory management and faster loading of large files
                  Obey the Font.Charset property under D2 and up
                  Obey the Font.Style settings
                  Added ParagraphsBackground and ParagraphsForeground properties
                  Implemented fine vertical scrolling, added TopOrigin property and
                         pmoNoFineScroll member to TPlusMemoOptions type
                  Added properties CaretX and CaretY
                  Added SetTopLeft method
                  Added StaticFormat property
                  The no-color change value for keywords and start-stop keys is now -1
                  Improved navigation behavior with pmoKeepColumnPos when crossing tabs
                  Improved vertical navigation behavior
                  Improved behavior of pmoAutoIndent when used along with pmoKeepColumnPos

4.0i              Fixed a bug in the highlighting engine

4.0h  26/12/98    Removed a memory leak in SetSelTextBuf if the text to add contains multiple
                        paragraphs

4.0g  06/12/98    Corrected End key behavior: cursor correctly rests on the end of the current
                        line rather than going to the start of next one.
                  Display position is reset to the top of text whenever the control is resized
                        such that the vertical scrollbar is no longer needed.
                  Corrected a bug when retrieving the text if the range starts on the end of
                        a line
                  Corrected a bug with method DrawLine under Delphi 1

4.0f  30/11/98    Fixed keywords and start-stop keys not highlighted when pasting some text
                        before making any editing operation
                  Fixed a problem with autoscrollbars, whereby the scrollbar space would not
                        be painted under certain circumstances
                  Fixed tabs not being colored when inside of start-stop keys or colored sections

4.0e  01/11/98    Fixed hang up when setting SelLine before the control has formatted text
                          (after loading, with either umOnNeed, umBackground).
                  Fixed control going in drag mode after having opened a popup menu over the
                          selection.
                  Fixed problem with pmoKeepColumnPos under certain circumstances when a
                          variable pitch font is used.
                  Rendered Lines.Add consistent with that of TMemo: adding an empty line when the
                          last line is already empty now correctly adds a new line in the control.
                  Added pmoDiscardTrailingSpaces to TPlusMemoOptions type
                  Added property RTFLeading

4.0d  29/09/98    Fixed caret sometimes going below the bottom scroll bar
                  Fixed display resting with a right view of the text even when horizontal
                           scrollbar disappear
                  Made SetSelTextBuf and SaveToStream virtual to accommodate descendants
                  ReApplyKeywords do not reset the display position
                  Added CurrentWord property
                  Left arrow key moves only one character position even if the caret
                     is far beyond the right of the end of line (pmoKeepColumnPos mode)


4.0c  16/09/98    Fixed Access Violation when streaming empty lines under Delphi 4
                  Better mouse navigation behavior: window scrolls when dragging left or right
                                                  : expand selection to adjacent words if mouse
                                                    is moved after double-clicking
                  Ctrl-BackSpace deletes previous word
                  Better handling of low ascii code values in text (Ascii #1 to #26)
                  Fixed incorrect start-stop range reported to OnContext event if the
                            context string is at the end of the text
                  Fixed incorrect display of highlighted and selected parts under certain circumstances

4.0b  31/08/98    Added a few features to PlusLines editor
                  Fixed a display problem with pmoWindowsSelColors
                  Fixed a bug in SaveToRTFStream
                  Added color for dynamically highlighted parts in SaveToRTFStream
                  Fixed a bug when pressing Enter at the end of the text in Overwrite mode

4.0a  13/08/97    Added pmoFullLineSelect in Options
                  Improved display rendition with pmoWindowsSelColors
                  Fixed Shift-Del bug: control does not refresh properly after a Shift-Del operation
                  Fixed tab printing bug: FormatText would not do a correct job when tab characters
                      are present
                  Drag and drop is undone in a single undo operation


4.0    26/07/98   Multi level undo-redo:
                       new properties:  CanRedo, UndoList, UndoCount, UndoLevel,
                                        UndoMaxLevel, UndoMaxSpace
                       new method: Redo
                  Added parameter WholeWordsOnly in FindText method
                  End of text marker (property EndOfTextMark)
                  Extended Options property with optional
                        Drag and Drop editing
                        Automatic scroll bars
                        Auto indent and back indent
                        Windows selection colors rather than color inversion
                  NullReplacement property
                  Delphi 4 version

3.3e   28/06/98   Corrected Index out of bounds error when editing on the right of a start-stop
                        key under certain circumstances

3.3d   27/05/98   Better streaming of Lines property: paragraphs can be designed larger than 255 chars
                        even under Delphi 1

3.3c   23/05/98   Fixed a rarely occurring formatting problem

3.3b   16/05/98   Fixed Access violation error when typing with the caret being one line
                        before the first displayed one

3.3a   29/04/98   Fixed incorrect removal of formatting applied with SetDynStyle following
                        subsequent editing
                  Fixed display refresh problem when a paragraph is separated in two
                        and the first part can wrap in fewer lines than previously shown

3.3     5/04/98   Property Lines, Paragraphs turned to TStrings; old ones renamed
                        as LinesStrings, ParStrings.
                  New higher performance, on demand parsing engine;
                        no limit on number of start-stopkeys
                  Added property Delimiters, removed TKeywordsList.Delimiters
                  Added property Separators, for design time access to Delimiters
                  Parameter Options in TStartStopKeyList.AddStartStopKey now effective
                  Removed Options field in TStartStopKeyList object
                  Ctrl-Alt key combination no longer acts as if only Ctrl is used
                  Added property editors for Lines, Keywords and StartStopKeys
                  Added method GetTextLen
                  Added property Overwrite
                  Added property Options that controls
                          - navigation behavior
                          - whether Insert key is effective or not
                          - whether word selections include delimiters
                  More accurate pointing and display behavior with italics on non
                         True Type fonts

3.2e   12/02/98   Fixed memory leak when deleting paragraphs under certain circumstances
                  Fixed GPF at destroy time in D1 when keywords are used under certain
                          circumstances
3.2d   20/01/97   Fixed resource leak in method DrawLine
                  Fixed GDI resource leak in LoadFromStream under certain circumstances

  3.2c   3/11/97    Fixed problem where methods ClearStyle and ClearStyleRange
                        do not always refresh display

  3.2b  17/10/97    Fixed problem where assigning text programmatically to the
                      control before the handle is created will make a kernel error
                      at destroy time, if there is more than one TPlusMemo created
                      by an application
                    Fixed printing problem for some installations

  3.2a  5/10/97     Added method ClearUndo
                    Added property ShowEndPar
                    Added property StripStrayCtrlCodes
                    Right clicking with the mouse no longer moves the selection point
                    Double clicking a word no longer selects the Tab just before it
                    Added property Options to TStartStopKeyList

  3.2   27/09/97    Added clickable hot spots, OnContext event
                    Fixed problem with UpdateMode set to umBackground

  3.1e  15/09/97    Added UpdateMode property

  3.1d  5/09/97     Added SaveToNativeStream, LoadFromNativeStream
                    Optimized SetTextBuf
                    Added ClearStyle and ClearStyleRange methods
                    Fixed memory leak in TKeywordList
                    Fixed GDI resource leak if OnProgress handler
                        does some drawing

  3.1c  15/08/97    Improved behavior when backspacing or deleting when the
                        caret is at a style frontier
                    More correct Ctl3D rendering
                    Fixed list index out of bounds error when switching WordWrap
                        under certain circumstances
                    Added OnVScroll event
                    Added parameter EndAtPar: Boolean to method
                        TStartStopKeyList.AddStartStopKey
                    Selected text is now painted by bitblt pixel inversion
                        rather than highlight color
                    Added write access to LineHeight, made it published
                    Control correctly receives Enter key even if a default
                        button is on the same form.

  3.1b  19/07/97    Improved formatting speed
                    Faster handling of keywords and comments (start-stop keys)
                    Methods FormatText and DrawLine now use the correct font size

  3.1a  14/07/97    Rendered Ctl3D active
                    Fixed selection sometimes not completely shown
                    Fixed GPF reading SelText with no text selected
                    Fixed GPF when deleting text under certain circumstances
                    Corrected problem with GetTextBuf method
                    Implemented ctrl-del, shift-del, ctrl-insert, shift-insert

  3.1   09/07/97    Delphi 3 compatible
                    Fixed problems with automatic keyword highlighting not
                    working properly under certain circumstances
                    Added parameters Backgnd and Foregnd to method
                      TKeywordsList.AddKeyWord, and implemented arbitrary
                      colors for keywords
                    Added start-stop keys dynamic highlighting
                    Removed the terminating null char when saving to a
                       stream

  3.0b  29/06/97    Fixed problem where backspacing from the start of the
                    last paragraph make an error
  3.0a  27/06/97    Fixed problem where entering a CR in the middle of
                    an highlighted keyword make an error

  3.0   22/06/97    Better memory management under D2
                    Fixed graphics resource management problem under D2
                    Can now load in Unix format
                    Added basic dynamic formatting functionality:
                        SetDynStyle method
                        Keywords property
                        OnParse event
                    FindText method has been rewritten: very fast now!
                    TDBPlusMemo added to package

  2.0b  18/05/97    Very minor adjustments
                    Compatible for db version of TPlusMemo

  2.0a  05/05/97    Fixed problem with vertical scrollbar appearing uncontrollably
                         ( didn't thought it would be so easy to have scrollbars
                           in a control )
                    Fixed control sometimes getting the caret even if not focused
                    Fixed navigation problem when number of paragraphs > 32K
                    Clipboard object does not accept more than 32K of text (it GPFs)
                        so text copied to the clipboard truncated to 32K rather than
                        64K
                    Improved FindText speed

  2.0   26/04/97    16/32 bit
                    Added SaveToRTFStream method
                    Returned Alignment property to Talignment and added
                                                          Justified property

  1.2a   20/04/97   Fixed problem with incorrect reading of ScrollBars property
                    Applying formatting no longer resets the selection length to 0
                    Added write access to PargrphBuf (it was dropped erroneously
                                                      at some unknown time)
                    Added DisplayOnly property

  1.2    10/04/97   Few speed improvements
                    Fixed problem with scrollbars appearing suddenly
                    OnKeyUp now called (it was omitted before)
                    Version property
                    CaretWidth property
                    Alignment property (includes justified text)
                    PassOverCodes (moving with arrows does not bump on ctrl codes)
                    FindText
                    FirstVisibleLine, LeftOrigin properties
                    Ctrl-C, Ctrl-V, Ctrl-X are effective (Copy, Paste, Cut)
                    Undo

  1.1    11/03/97   Optional hor. and vert. scroll bars
                    LineHeight property
                    FormatText and DrawLine methods (Notepad Plus now prints!)

  1.0c   4/03/97    Improved again display accuracy
                    Added write access to Paragraphs property

  1.0b   24/02/97   Added AltFont, SetAltFont and support Ctrl-F
                    Fixed bugs when deleting multiple par.
                    Improved slightly display accuracy

  1.0a  11/02/97    Corrected bug that make top of display blank when
                       paging down with scroll bar with few lines of text
                    Correctly handle setSelTextBuf with unpaired control codes
                    Added write access to SelPar, SelLine, SelCol properties
                    Added EnableHotKeys property
                    Added PargrphOffset property

  1.0   30/01/97    Initial release }

