*****************************************
*REdit - A RichEdit descendent component*
*****************************************
Features:

    - Provides its own methods to load from files of various formats
    - RTF content published so that it can be read and modified
    - Easy for you to add your own search engine (template provided)
    - Variable length of spaces between tab markers or use real tab,
    - Supports auto-indent and back-space-unindent
    - Customize most of the above while program is running
    - Getting and changing the current row and column
    - Getting and changing the current topmost row
    - Getting the current maximum number of visible rows
    - Getting if it is in insert or overwrite mode      
    - Supports insertion of files at selection
    - Supports saving to Unix and Macintosh formats
    - Changed behavior:
      Holding <Ctrl> while pressing <up>, <down>, <page up> or <page down>
      scrolls without moving the caret
    - A method to trim all trailing spaces
    - Added events:
      1. On Position Change
      2. On Mode (Insert <-> Overwrite) Change
      3. On Horizontal Scroll
      4. On Vertical Scroll
    
    - Document Source Code with hints on where you can add extra stuffs


***************************************************
*New Public (not published) methods and properties*
***************************************************

constructor Create(AOwner: TComponent); override;

    Constructor
--------------------------------------------------------------------------------
destructor Destroy; override;

    Destructor
--------------------------------------------------------------------------------
procedure LoadFromFile(const FileName: string);

    Load from a file given the filename.
    Use this method to load files of any form (DOS/Unix/Mac)

    Note:
        - ONLY use TREdit.LoadFromFile, and NOT Lines.LoadFromFile, to open files
--------------------------------------------------------------------------------
procedure InsertFromFile(const FileName: string);
    Inserts a file at at the current selection point given the file name
--------------------------------------------------------------------------------
procedure SaveToDOS(const FileName: string);
procedure SaveToUnix(const FileName: string);
procedure SaveToMac(const FileName: string);

    Save the editor content to various formats in the given file name

    Note:
        - ONLY use TREdit.SaveTo*, and NOT Lines.SaveToFile, to save files
--------------------------------------------------------------------------------
procedure TrimAllTrail;

    Trims all trailing spaces in the editor content
--------------------------------------------------------------------------------
function Find(InPattern: string; InStart: integer;
              IsCaseSen: boolean; IsRegExp: boolean): integer;

    Given the search pattern, the position from which to start searching,
    case sensitivity, and if it is a regular expression search,
    search the given pattern in the editor content.

    Note:
        - This part is commented out because I cannot include RegExp.pas
          with the component
--------------------------------------------------------------------------------
property CurrentRow: integer;

    Get or set the current row where the caret is at
--------------------------------------------------------------------------------
property CurrentCol: integer;

    Get or set the current column where the caret is at
--------------------------------------------------------------------------------
property CurrentTop: integer;

    Get or set the current topmost visible row
    OnVScroll is called if it is assigned
--------------------------------------------------------------------------------
property MaxVisible: integer;

    Get the maximum number of visible lines
--------------------------------------------------------------------------------
property IsOverwrite: boolean read FIsOverwrite;

    Get the insertion mode - Insert:false, Overwrite:true

**************************
*New Published properties*
**************************

property RTFText: string;

    Get or set the RTF content
--------------------------------------------------------------------------------
property IndentSpace: integer;

    Get or set the number of spaces between tab markers
    A value of 0 corresponds to using the true tab character
--------------------------------------------------------------------------------
property BackSpaceUnIndent: boolean;

    Get or set "back space unindent", true if this feature is wanted
--------------------------------------------------------------------------------
property AutoIndent: boolean;

    Get or set "auto indentation", true if this feature is wanted
--------------------------------------------------------------------------------
property OnPosChange: TPosChange;

    procedure(InRow, InCol: integer)
        where InRow is the row and InCol is the column it will supply to your
        event handler

    Triggered when the caret changes its position
--------------------------------------------------------------------------------
property OnModeChange: TModeChange;

    procedure(IsStateOverwrite: boolean)
        where IsStateOverwrite is the status of the "overwrite state"
        (true -> overwrite, false -> insert) it will supply to your event handler

    Triggered when the input mode is changed between Insert and Overwrite    
--------------------------------------------------------------------------------
property OnScrollV: TNotifyEvent;

    Triggered when there is a vertical scroll
--------------------------------------------------------------------------------
property OnScrollH: TNotifyEvent;

    Triggered when there is a horizontal scroll


End of Document